Skip to content

Commit fbbe23b

Browse files
authored
Merge pull request #2741 from Mailaender/delete-target-notify-spam
Avoid notificaton spam when deleting multiple targets in Peak/Scan list
2 parents 5ec95d6 + 5e53fee commit fbbe23b

File tree

3 files changed

+27
-23
lines changed

3 files changed

+27
-23
lines changed

chemclipse/plugins/org.eclipse.chemclipse.ux.extension.xxd.ui/src/org/eclipse/chemclipse/ux/extension/xxd/ui/operations/DeleteTargetsOperation.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2023, 2025 Lablicate GmbH.
2+
* Copyright (c) 2023, 2026 Lablicate GmbH.
33
*
44
* This program and the accompanying materials are made
55
* available under the terms of the Eclipse Public License 2.0
@@ -78,21 +78,8 @@ public boolean canUndo() {
7878
public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
7979

8080
targetSupplier.getTargets().removeAll(targetsToDelete);
81-
update(ExtensionMessages.targetsDeleted);
82-
return Status.OK_STATUS;
83-
}
84-
85-
private void update(String message) {
8681

87-
UpdateNotifierUI.update(display, IChemClipseEvents.TOPIC_IDENTIFICATION_TARGETS_UPDATE_SELECTION, message);
88-
chromatogramSelection.getChromatogram().setDirty(true);
89-
if(targetSupplier instanceof IPeak peak) {
90-
chromatogramSelection.setSelectedPeak(peak);
91-
UpdateNotifierUI.update(display, peak);
92-
} else if(targetSupplier instanceof IScan scan) {
93-
chromatogramSelection.getSelectedScan();
94-
UpdateNotifierUI.update(display, scan);
95-
}
82+
return Status.OK_STATUS;
9683
}
9784

9885
@Override
@@ -111,7 +98,20 @@ public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionE
11198
public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
11299

113100
targetSupplier.getTargets().addAll(targetsToDelete);
114-
update(ExtensionMessages.targetsRestored);
101+
notifyTargetsRestored();
115102
return Status.OK_STATUS;
116103
}
104+
105+
private void notifyTargetsRestored() {
106+
107+
UpdateNotifierUI.update(display, IChemClipseEvents.TOPIC_IDENTIFICATION_TARGETS_UPDATE_SELECTION, ExtensionMessages.targetsRestored);
108+
chromatogramSelection.getChromatogram().setDirty(true);
109+
if(targetSupplier instanceof IPeak peak) {
110+
chromatogramSelection.setSelectedPeak(peak);
111+
UpdateNotifierUI.update(display, peak);
112+
} else if(targetSupplier instanceof IScan scan) {
113+
chromatogramSelection.getSelectedScan();
114+
UpdateNotifierUI.update(display, scan);
115+
}
116+
}
117117
}

chemclipse/plugins/org.eclipse.chemclipse.ux.extension.xxd.ui/src/org/eclipse/chemclipse/ux/extension/xxd/ui/swt/ExtendedPeakScanListUI.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import org.eclipse.chemclipse.ux.extension.xxd.ui.dialogs.InternalStandardDialog;
6363
import org.eclipse.chemclipse.ux.extension.xxd.ui.help.HelpContext;
6464
import org.eclipse.chemclipse.ux.extension.xxd.ui.internal.support.TableConfigSupport;
65+
import org.eclipse.chemclipse.ux.extension.xxd.ui.l10n.ExtensionMessages;
6566
import org.eclipse.chemclipse.ux.extension.xxd.ui.operations.DeletePeaksOperation;
6667
import org.eclipse.chemclipse.ux.extension.xxd.ui.operations.DeleteScanTargetsOperation;
6768
import org.eclipse.chemclipse.ux.extension.xxd.ui.operations.DeleteTargetsOperation;
@@ -460,7 +461,7 @@ private void addKeyEventProcessors(Display display, ITableSettings tableSettings
460461
} else if(matchesKeyPress("Classifier", e)) {
461462
modifyClassifier(display);
462463
} else if(matchesKeyPress("DeleteTargets", e)) {
463-
deleteTargetsAll(e.display);
464+
deleteTargetsAll();
464465
} else if(matchesKeyPress("Unknown", e)) {
465466
addTargetsUnknown();
466467
} else if(matchesKeyPress("Query", e)) {
@@ -623,12 +624,12 @@ private void modifyClassifier(Display display) {
623624
}
624625
}
625626

626-
private void deleteTargetsAll(Display display) {
627+
private void deleteTargetsAll() {
627628

628629
for(Object object : tableViewer.get().getStructuredSelection().toList()) {
629630
if(object instanceof ITargetSupplier targetSupplier) {
630631
Set<IIdentificationTarget> targetsToDelete = targetSupplier.getTargets();
631-
DeleteTargetsOperation deleteTargetsOperation = new DeleteTargetsOperation(display, chromatogramSelection, targetSupplier, targetsToDelete);
632+
DeleteTargetsOperation deleteTargetsOperation = new DeleteTargetsOperation(getDisplay(), chromatogramSelection, targetSupplier, targetsToDelete);
632633
deleteTargetsOperation.addContext(UndoContextFactory.getUndoContext());
633634

634635
try {
@@ -649,7 +650,9 @@ private void deleteTargetsAll(Display display) {
649650
* Send update.
650651
*/
651652
tableViewer.get().refresh();
652-
UpdateNotifierUI.update(display, chromatogramSelection);
653+
chromatogramSelection.getChromatogram().setDirty(true);
654+
UpdateNotifierUI.update(getDisplay(), chromatogramSelection);
655+
UpdateNotifierUI.update(getDisplay(), IChemClipseEvents.TOPIC_IDENTIFICATION_TARGETS_UPDATE_SELECTION, ExtensionMessages.targetsDeleted);
653656
}
654657
}
655658

chemclipse/plugins/org.eclipse.chemclipse.ux.extension.xxd.ui/src/org/eclipse/chemclipse/ux/extension/xxd/ui/swt/ExtendedTargetsUI.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.eclipse.chemclipse.ux.extension.ui.swt.IExtendedPartUI;
4747
import org.eclipse.chemclipse.ux.extension.xxd.ui.Activator;
4848
import org.eclipse.chemclipse.ux.extension.xxd.ui.help.HelpContext;
49+
import org.eclipse.chemclipse.ux.extension.xxd.ui.l10n.ExtensionMessages;
4950
import org.eclipse.chemclipse.ux.extension.xxd.ui.operations.DeleteTargetsOperation;
5051
import org.eclipse.chemclipse.ux.extension.xxd.ui.preferences.PreferencePageLists;
5152
import org.eclipse.chemclipse.ux.extension.xxd.ui.preferences.PreferencePageTargets;
@@ -706,7 +707,7 @@ private void deleteTargetsSelected(Display display) {
706707
AtomicReference<TargetsListUI> targetList = getActiveTargetList();
707708
List<IIdentificationTarget> selection = targetList.get().getStructuredSelection().toList();
708709
if(getObject() instanceof ITargetSupplier targetSupplier) {
709-
DeleteTargetsOperation deleteTargetsOperation = new DeleteTargetsOperation(display, chromatogramSelection, targetSupplier, selection);
710+
DeleteTargetsOperation deleteTargetsOperation = new DeleteTargetsOperation(getDisplay(), chromatogramSelection, targetSupplier, selection);
710711
deleteTargetsOperation.addContext(UndoContextFactory.getUndoContext());
711712
try {
712713
getOperationHistory().execute(deleteTargetsOperation, null, null);
@@ -721,7 +722,7 @@ private void deleteTargetsAll(Display display) {
721722

722723
if(chromatogramSelection != null && getObject() instanceof ITargetSupplier targetSupplier) {
723724
Set<IIdentificationTarget> targetsToDelete = targetSupplier.getTargets();
724-
DeleteTargetsOperation deleteTargetsOperation = new DeleteTargetsOperation(display, chromatogramSelection, targetSupplier, targetsToDelete);
725+
DeleteTargetsOperation deleteTargetsOperation = new DeleteTargetsOperation(getDisplay(), chromatogramSelection, targetSupplier, targetsToDelete);
725726
deleteTargetsOperation.addContext(UndoContextFactory.getUndoContext());
726727
try {
727728
getOperationHistory().execute(deleteTargetsOperation, null, null);
@@ -744,7 +745,7 @@ private void updateTargetsModify(Display display) {
744745

745746
setChromatogramDirty();
746747
updateTargets(display);
747-
UpdateNotifierUI.update(display, IChemClipseEvents.TOPIC_EDITOR_CHROMATOGRAM_UPDATE, "Targets have been deleted.");
748+
UpdateNotifierUI.update(display, IChemClipseEvents.TOPIC_EDITOR_CHROMATOGRAM_UPDATE, ExtensionMessages.targetsDeleted);
748749
}
749750

750751
private void addTarget(Display display, IIdentificationTarget identificationTarget) {

0 commit comments

Comments
 (0)