1 package org.simantics.interop.issues;
\r
3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
6 import org.eclipse.swt.widgets.Display;
\r
8 public abstract class AbstractIssue implements Issue{
\r
10 private String description;
\r
11 private List<IssueListener> listeners = new ArrayList<IssueListener>();
\r
14 public String getDescription() {
\r
18 public void setDescription(String description) {
\r
19 this.description = description;
\r
23 protected void fireUpdated() {
\r
24 Display.getDefault().asyncExec(new Runnable() {
\r
27 synchronized (listeners) {
\r
28 for (IssueListener l : listeners) {
\r
29 l.updated(AbstractIssue.this);
\r
37 protected void fireDisposed() {
\r
38 Display.getDefault().asyncExec(new Runnable() {
\r
41 List<IssueListener> list = new ArrayList<IssueListener>();
\r
42 list.addAll(listeners);
\r
43 for (IssueListener l : list) {
\r
44 l.disposed(AbstractIssue.this);
\r
52 public void addListener(IssueListener listener) {
\r
53 synchronized(listeners) {
\r
54 listeners.add(listener);
\r
59 public void removeListener(IssueListener listener) {
\r
60 synchronized(listeners) {
\r
61 listeners.remove(listener);
\r
66 public void dispose() {
\r