Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui.launchview/src/org/eclipse/debug/ui/launchview/internal/services/AbstractLaunchObjectProvider.java')
-rw-r--r--org.eclipse.debug.ui.launchview/src/org/eclipse/debug/ui/launchview/internal/services/AbstractLaunchObjectProvider.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/org.eclipse.debug.ui.launchview/src/org/eclipse/debug/ui/launchview/internal/services/AbstractLaunchObjectProvider.java b/org.eclipse.debug.ui.launchview/src/org/eclipse/debug/ui/launchview/internal/services/AbstractLaunchObjectProvider.java
new file mode 100644
index 000000000..af1e6c31b
--- /dev/null
+++ b/org.eclipse.debug.ui.launchview/src/org/eclipse/debug/ui/launchview/internal/services/AbstractLaunchObjectProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2017, 2019 SSI Schaefer IT Solutions GmbH and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * SSI Schaefer IT Solutions GmbH
+ *******************************************************************************/
+package org.eclipse.debug.ui.launchview.internal.services;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Base class for {@link ILaunchObjectProvider} implementations which require
+ * listeners to be notified on updates.
+ */
+public abstract class AbstractLaunchObjectProvider implements ILaunchObjectProvider {
+
+ private final List<Runnable> updateListeners = new ArrayList<>();
+
+ @Override
+ public void addUpdateListener(Runnable r) {
+ updateListeners.add(r);
+ }
+
+ @Override
+ public void removeUpdateListener(Runnable r) {
+ updateListeners.remove(r);
+ }
+
+ protected void fireUpdate() {
+ // prevent multiple updates in short row somehow?
+ updateListeners.forEach(Runnable::run);
+ }
+
+}

Back to the top