Skip to content

Commit 0260961

Browse files
Fix: Clear detail panels on severity filter change (AST-136035) (#245)
* Fix AST-136035: Clear detail panels on severity filter change; fix scan ID combo overflow - Hide resultViewComposite and attackVectorCompositePanel when filter changes so the description and attack vector windows no longer show stale content - Replace fixed widthHint=520 on scan ID combo with SWT.FILL/grabExcess layout so the combo is always visible without needing to maximize the window Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * Fix AST-136035: Clear right panels only when displayed item's severity is filtered out Previously, toggling any severity filter always hid the description and attack vector panels. Now the panels are only cleared when the currently displayed item belongs to a severity that was just disabled. If the item's severity is still active, the panels stay visible. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * Fix AST-136035: Preserve tree expansion state when severity filter changes - Capture expanded elements before clearing the model so the snapshot is accurate when restoring after refresh - Pass expand=true for FILTER_CHANGED (keep GET_RESULTS at false) so previously expanded group nodes are restored after filtering instead of collapsing the entire tree Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
1 parent 644dae9 commit 0260961

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

checkmarx-ast-eclipse-plugin/src/com/checkmarx/eclipse/views/CheckmarxView.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ public class CheckmarxView extends ViewPart implements EventHandler {
160160
private Text commentText;
161161
private DisplayModel rootModel;
162162
private String selectedSeverity, selectedState;
163+
private DisplayModel currentlyDisplayedItem;
163164
private Button triageButton;
164165
private SelectionAdapter triageButtonAdapter, codeBashingAdapter;
165166
private Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
@@ -1082,8 +1083,7 @@ private void createScanIdComboBox(Composite parent) {
10821083
scanIdComboViewer.setContentProvider(ArrayContentProvider.getInstance());
10831084
scanIdComboViewer.setInput(new ArrayList<>());
10841085

1085-
GridData gridData = new GridData();
1086-
gridData.widthHint = 520;
1086+
GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
10871087
scanIdComboViewer.getCombo().setLayoutData(gridData);
10881088

10891089
scanIdComboViewer.getCombo().addListener(SWT.DefaultSelection, new Listener() {
@@ -1386,6 +1386,7 @@ protected IStatus run(IProgressMonitor arg0) {
13861386

13871387
if (selectedItem.getResult() != null && selectedItem.getResult().getSimilarityId() != null) {
13881388
sync.asyncExec(() -> {
1389+
currentlyDisplayedItem = selectedItem;
13891390
createTriageSeverityAndStateCombos(selectedItem);
13901391
populateTriageChanges(selectedItem);
13911392
resultViewComposite.setVisible(true);
@@ -2473,6 +2474,8 @@ private Image findSeverityImage(DisplayModel model) {
24732474
private void listener(PluginListenerDefinition definition) {
24742475
switch (definition.getListenerType()) {
24752476
case FILTER_CHANGED:
2477+
updateResultsTree(definition.getResutls(), true);
2478+
break;
24762479
case GET_RESULTS:
24772480
updateResultsTree(definition.getResutls(), false);
24782481
break;
@@ -2489,9 +2492,15 @@ private void listener(PluginListenerDefinition definition) {
24892492

24902493
private void updateResultsTree(List<DisplayModel> results, boolean expand) {
24912494
sync.asyncExec(() -> {
2495+
if (currentlyDisplayedItem == null
2496+
|| currentlyDisplayedItem.getSeverity() == null
2497+
|| !FilterState.isSeverityEnabled(currentlyDisplayedItem.getSeverity())) {
2498+
resultViewComposite.setVisible(false);
2499+
attackVectorCompositePanel.setVisible(false);
2500+
}
2501+
Object[] expanded = resultsTree.getExpandedElements();
24922502
rootModel.children.clear();
24932503
rootModel.children.addAll(results);
2494-
Object[] expanded = resultsTree.getExpandedElements();
24952504
resultsTree.refresh();
24962505
if (expand) {
24972506
Set<String> expandedDMNames = new HashSet<>();

0 commit comments

Comments
 (0)