Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Vosburgh2013-06-10 20:03:15 +0000
committerBrian Vosburgh2013-06-10 20:39:39 +0000
commitd41a16b9df9c345758513980ef0c0a1e085fa944 (patch)
tree868b383f644a5e4dfbfb0d7ca3ca3a24158f6434 /common/plugins/org.eclipse.jpt.common.ui
parenta11ef4b8fc1949f88e4d3cb6f83b9d4b5d6d3b2e (diff)
downloadwebtools.dali-d41a16b9df9c345758513980ef0c0a1e085fa944.tar.gz
webtools.dali-d41a16b9df9c345758513980ef0c0a1e085fa944.tar.xz
webtools.dali-d41a16b9df9c345758513980ef0c0a1e085fa944.zip
rework SWT listener wrappers
Diffstat (limited to 'common/plugins/org.eclipse.jpt.common.ui')
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/AbstractSWTListenerWrapper.java42
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java70
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java76
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperDelegate.java117
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperTools.java288
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java68
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java61
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java9
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java12
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java8
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java8
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java11
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java8
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanButtonModelBinding.java6
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanStateController.java6
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/DropDownListBoxSelectionBinding.java6
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/LabelModelBinding.java6
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListBoxSelectionBinding.java5
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListWidgetModelBinding.java4
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/PageBookModelBinding.java4
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/TextFieldModelBinding.java6
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java4
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java4
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java6
-rw-r--r--common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java6
25 files changed, 543 insertions, 298 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/AbstractSWTListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/AbstractSWTListenerWrapper.java
new file mode 100644
index 0000000000..c461d7d2a5
--- /dev/null
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/AbstractSWTListenerWrapper.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2013 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.common.ui.internal.listeners;
+
+import java.util.EventListener;
+import java.util.EventObject;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Wrap another listener and forward events to it on the SWT
+ * UI thread, asynchronously if necessary.
+ * @see SWTListenerWrapperDelegate
+ */
+public abstract class AbstractSWTListenerWrapper<E extends EventObject, L extends EventListener>
+ implements SWTListenerWrapperDelegate.Wrapper<E>
+{
+ /* private-*/ protected final L listener;
+ /* private-*/ protected final SWTListenerWrapperDelegate<E> delegate;
+
+
+ protected AbstractSWTListenerWrapper(L listener, Display display, ExceptionHandler exceptionHandler) {
+ super();
+ if (listener == null) {
+ throw new NullPointerException();
+ }
+ this.listener = listener;
+ this.delegate = new SWTListenerWrapperDelegate<E>(this, display, exceptionHandler);
+ }
+
+ @Override
+ public String toString() {
+ return "SWT[" + this.listener + ']'; //$NON-NLS-1$
+ }
+}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java
index 7c09e40eda..2b36997abc 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTCollectionChangeListenerWrapper.java
@@ -9,79 +9,44 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.listeners;
-import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
-import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
-import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
-import org.eclipse.jpt.common.utility.internal.collection.SynchronizedQueue;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
import org.eclipse.jpt.common.utility.model.event.CollectionChangeEvent;
import org.eclipse.jpt.common.utility.model.event.CollectionClearEvent;
import org.eclipse.jpt.common.utility.model.event.CollectionEvent;
import org.eclipse.jpt.common.utility.model.event.CollectionRemoveEvent;
import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
+import org.eclipse.swt.widgets.Display;
/**
* Wrap another collection change listener and forward events to it on the SWT
* UI thread, asynchronously if necessary.
- *
- * @see SWTPropertyChangeListenerWrapper
*/
public class SWTCollectionChangeListenerWrapper
+ extends AbstractSWTListenerWrapper<CollectionEvent, CollectionChangeListener>
implements CollectionChangeListener
{
- private final CollectionChangeListener listener;
- private final SynchronizedQueue<CollectionEvent> events = new SynchronizedQueue<CollectionEvent>();
-
-
- public SWTCollectionChangeListenerWrapper(CollectionChangeListener listener) {
- super();
- if (listener == null) {
- throw new NullPointerException();
- }
- this.listener = listener;
+ public SWTCollectionChangeListenerWrapper(CollectionChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ super(listener, display, exceptionHandler);
}
public void itemsAdded(CollectionAddEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void itemsRemoved(CollectionRemoveEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void collectionCleared(CollectionClearEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void collectionChanged(CollectionChangeEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
- }
-
- /* CU private */ class ForwardEventsRunnable
- extends RunnableAdapter
- {
- @Override
- public void run() {
- SWTCollectionChangeListenerWrapper.this.forwardEvents();
- }
+ this.delegate.handle(event);
}
- void forwardEvents() {
- Iterable<CollectionEvent> temp = this.events.drain(); // debug
- for (CollectionEvent event : temp) {
- try {
- this.forwardEvent(event);
- } catch (RuntimeException ex) {
- JptCommonUiPlugin.instance().logError(ex);
- }
- }
- }
-
- private void forwardEvent(CollectionEvent event) {
+ public void forward(CollectionEvent event) {
if (event instanceof CollectionAddEvent) {
this.listener.itemsAdded((CollectionAddEvent) event);
}
@@ -95,19 +60,4 @@ public class SWTCollectionChangeListenerWrapper
this.listener.collectionChanged((CollectionChangeEvent) event);
}
}
-
- /**
- * {@link DisplayTools#execute(Runnable)} seems to work OK;
- * but using {@link DisplayTools#syncExec(Runnable)} can somtimes make things
- * more predictable when debugging, at the risk of deadlocks.
- */
- private void execute(Runnable r) {
- DisplayTools.execute(r);
-// SWTUtil.syncExec(r);
- }
-
- @Override
- public String toString() {
- return "SWT(" + this.listener + ')'; //$NON-NLS-1$
- }
}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java
index c820a81230..89d41891b6 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListChangeListenerWrapper.java
@@ -9,10 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.listeners;
-import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
-import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
-import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
-import org.eclipse.jpt.common.utility.internal.collection.SynchronizedQueue;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
import org.eclipse.jpt.common.utility.model.event.ListChangeEvent;
import org.eclipse.jpt.common.utility.model.event.ListClearEvent;
@@ -21,79 +18,45 @@ import org.eclipse.jpt.common.utility.model.event.ListMoveEvent;
import org.eclipse.jpt.common.utility.model.event.ListRemoveEvent;
import org.eclipse.jpt.common.utility.model.event.ListReplaceEvent;
import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
+import org.eclipse.swt.widgets.Display;
/**
* Wrap another list change listener and forward events to it on the SWT
* UI thread, asynchronously if necessary.
- *
- * @see SWTPropertyChangeListenerWrapper
*/
public class SWTListChangeListenerWrapper
+ extends AbstractSWTListenerWrapper<ListEvent, ListChangeListener>
implements ListChangeListener
{
- private final ListChangeListener listener;
- private final SynchronizedQueue<ListEvent> events = new SynchronizedQueue<ListEvent>();
-
-
- public SWTListChangeListenerWrapper(ListChangeListener listener) {
- super();
- if (listener == null) {
- throw new NullPointerException();
- }
- this.listener = listener;
+ public SWTListChangeListenerWrapper(ListChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ super(listener, display, exceptionHandler);
}
public void itemsAdded(ListAddEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void itemsRemoved(ListRemoveEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void itemsMoved(ListMoveEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void itemsReplaced(ListReplaceEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void listCleared(ListClearEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
+ this.delegate.handle(event);
}
public void listChanged(ListChangeEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
- }
-
- /* CU private */ class ForwardEventsRunnable
- extends RunnableAdapter
- {
- @Override
- public void run() {
- SWTListChangeListenerWrapper.this.forwardEvents();
- }
+ this.delegate.handle(event);
}
- void forwardEvents() {
- Iterable<ListEvent> temp = this.events.drain(); // debug
- for (ListEvent event : temp) {
- try {
- this.forwardEvent(event);
- } catch (RuntimeException ex) {
- JptCommonUiPlugin.instance().logError(ex);
- }
- }
- }
-
- private void forwardEvent(ListEvent event) {
+ public void forward(ListEvent event) {
if (event instanceof ListAddEvent) {
this.listener.itemsAdded((ListAddEvent) event);
}
@@ -113,19 +76,4 @@ public class SWTListChangeListenerWrapper
this.listener.listChanged((ListChangeEvent) event);
}
}
-
- /**
- * {@link DisplayTools#execute(Runnable)} seems to work OK;
- * but using {@link DisplayTools#syncExec(Runnable)} can somtimes make things
- * more predictable when debugging, at the risk of deadlocks.
- */
- private void execute(Runnable r) {
- DisplayTools.execute(r);
-// SWTUtil.syncExec(r);
- }
-
- @Override
- public String toString() {
- return "SWT(" + this.listener + ')'; //$NON-NLS-1$
- }
}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperDelegate.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperDelegate.java
new file mode 100644
index 0000000000..99288a8902
--- /dev/null
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperDelegate.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2013 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.common.ui.internal.listeners;
+
+import java.util.EventObject;
+import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
+import org.eclipse.jpt.common.utility.internal.ObjectTools;
+import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
+import org.eclipse.jpt.common.utility.internal.collection.SynchronizedQueue;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Delegate used by a {@link Wrapper} to forward events to its
+ * wrapped listener on the SWT UI thread, asynchronously if necessary.
+ * If the event arrived on the UI
+ * thread that is probably because it was initiated by a UI widget; as a
+ * result, we want to loop back synchronously so the events can be
+ * short-circuited. (Typically, the adapter(s) between a <em>property</em> and
+ * its corresponding UI widget are read-write; as opposed to the adapter(s)
+ * between a <em>collection</em> (or <em>list</em>) and its UI widget, which
+ * is read-only.)
+ * <p>
+ * Any events received earlier (on a non-UI thread) will be
+ * forwarded, in the order received, before the current event is forwarded.
+ */
+public class SWTListenerWrapperDelegate<E extends EventObject> {
+ private final Wrapper<E> wrapper;
+ private final Display display;
+ private final Runnable forwardEventsRunnable = new ForwardEventsRunnable();
+ private final ExceptionHandler exceptionHandler;
+ private final SynchronizedQueue<E> events = new SynchronizedQueue<E>();
+
+
+ public SWTListenerWrapperDelegate(Wrapper<E> wrapper, Display display, ExceptionHandler exceptionHandler) {
+ super();
+ if (wrapper == null) {
+ throw new NullPointerException();
+ }
+ this.wrapper = wrapper;
+ if (display == null) {
+ throw new NullPointerException();
+ }
+ this.display = display;
+ if (exceptionHandler == null) {
+ throw new NullPointerException();
+ }
+ this.exceptionHandler = exceptionHandler;
+ }
+
+ /**
+ * Called by the wrapper.
+ */
+ public void handle(E event) {
+ this.events.enqueue(event);
+ this.execute(this.forwardEventsRunnable);
+ }
+
+ /**
+ * {@link DisplayTools#execute(Runnable)} seems to work OK;
+ * but using {@link Display#syncExec(Runnable)} can somtimes make things
+ * more predictable when debugging, at the risk of deadlocks.
+ */
+ private void execute(Runnable runnable) {
+ DisplayTools.execute(this.display, runnable);
+// this.display.syncExec(runnable);
+ }
+
+ /* CU private */ class ForwardEventsRunnable
+ extends RunnableAdapter
+ {
+ @Override
+ public void run() {
+ SWTListenerWrapperDelegate.this.forwardEvents();
+ }
+ }
+
+ /**
+ * Dispatch the events back to the wrapper once we are on the UI thread.
+ */
+ /* CU private */ void forwardEvents() {
+ Iterable<E> temp = this.events.drain(); // debug aid
+ for (E event : temp) {
+ try {
+ this.wrapper.forward(event);
+ } catch (RuntimeException ex) {
+ this.exceptionHandler.handleException(ex);
+ }
+ }
+ }
+
+ @Override
+ public String toString() {
+ return ObjectTools.toString(this, this.wrapper);
+ }
+
+
+ // ********** wrapper interface **********
+
+ /**
+ * The interface used by {@link SWTListenerWrapperDelegate} to forward
+ * events to the wrapped listener from the UI thread.
+ */
+ public interface Wrapper<E extends EventObject> {
+ /**
+ * Forward the specified event to the wrapped listener.
+ */
+ void forward(E event);
+ }
+}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperTools.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperTools.java
new file mode 100644
index 0000000000..1c4dbb00f0
--- /dev/null
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTListenerWrapperTools.java
@@ -0,0 +1,288 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2013 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.common.ui.internal.listeners;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
+import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
+import org.eclipse.jpt.common.utility.internal.RuntimeExceptionHandler;
+import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
+import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
+import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
+import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Widget;
+
+public final class SWTListenerWrapperTools {
+
+ private static final ExceptionHandler DEFAULT_EXCEPTION_HANDLER =
+ (JptCommonUiPlugin.instance() != null) ?
+ JptCommonUiPlugin.instance().getExceptionHandler() :
+ RuntimeExceptionHandler.instance();
+
+ // ********** property **********
+
+ /**
+ * Wrap the specified property change listener and forward events to it on
+ * the SWT UI thread, asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTPropertyChangeListenerWrapper
+ */
+ public static PropertyChangeListener wrap(PropertyChangeListener listener) {
+ return wrap(listener, DisplayTools.getDisplay());
+ }
+
+ /**
+ * Wrap the specified property change listener and forward events to it on
+ * the SWT UI thread associated with the specified viewer,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTPropertyChangeListenerWrapper
+ */
+ public static PropertyChangeListener wrap(PropertyChangeListener listener, Viewer viewer) {
+ return wrap(listener, viewer.getControl());
+ }
+
+ /**
+ * Wrap the specified property change listener and forward events to it on
+ * the SWT UI thread associated with the specified widget,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTPropertyChangeListenerWrapper
+ */
+ public static PropertyChangeListener wrap(PropertyChangeListener listener, Widget widget) {
+ return wrap(listener, widget.getDisplay());
+ }
+
+ /**
+ * Wrap the specified property change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTPropertyChangeListenerWrapper
+ */
+ public static PropertyChangeListener wrap(PropertyChangeListener listener, Display display) {
+ return wrap(listener, display, DEFAULT_EXCEPTION_HANDLER);
+ }
+
+ /**
+ * Wrap the specified property change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be forwarded to the
+ * specified exception handler.
+ * @see SWTPropertyChangeListenerWrapper
+ */
+ public static PropertyChangeListener wrap(PropertyChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ return new SWTPropertyChangeListenerWrapper(listener, display, exceptionHandler);
+ }
+
+
+ // ********** collection **********
+
+ /**
+ * Wrap the specified collection change listener and forward events to it on
+ * the SWT UI thread, asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTCollectionChangeListenerWrapper
+ */
+ public static CollectionChangeListener wrap(CollectionChangeListener listener) {
+ return wrap(listener, DisplayTools.getDisplay());
+ }
+
+ /**
+ * Wrap the specified collection change listener and forward events to it on
+ * the SWT UI thread associated with the specified viewer,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTCollectionChangeListenerWrapper
+ */
+ public static CollectionChangeListener wrap(CollectionChangeListener listener, Viewer viewer) {
+ return wrap(listener, viewer.getControl());
+ }
+
+ /**
+ * Wrap the specified collection change listener and forward events to it on
+ * the SWT UI thread associated with the specified widget,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTCollectionChangeListenerWrapper
+ */
+ public static CollectionChangeListener wrap(CollectionChangeListener listener, Widget widget) {
+ return wrap(listener, widget.getDisplay());
+ }
+
+ /**
+ * Wrap the specified collection change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTCollectionChangeListenerWrapper
+ */
+ public static CollectionChangeListener wrap(CollectionChangeListener listener, Display display) {
+ return wrap(listener, display, DEFAULT_EXCEPTION_HANDLER);
+ }
+
+ /**
+ * Wrap the specified collection change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be forwarded to the
+ * specified exception handler.
+ * @see SWTCollectionChangeListenerWrapper
+ */
+ public static CollectionChangeListener wrap(CollectionChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ return new SWTCollectionChangeListenerWrapper(listener, display, exceptionHandler);
+ }
+
+
+ // ********** list **********
+
+ /**
+ * Wrap the specified list change listener and forward events to it on
+ * the SWT UI thread, asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTListChangeListenerWrapper
+ */
+ public static ListChangeListener wrap(ListChangeListener listener) {
+ return wrap(listener, DisplayTools.getDisplay());
+ }
+
+ /**
+ * Wrap the specified list change listener and forward events to it on
+ * the SWT UI thread associated with the specified viewer,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTListChangeListenerWrapper
+ */
+ public static ListChangeListener wrap(ListChangeListener listener, Viewer viewer) {
+ return wrap(listener, viewer.getControl());
+ }
+
+ /**
+ * Wrap the specified list change listener and forward events to it on
+ * the SWT UI thread associated with the specified widget,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTListChangeListenerWrapper
+ */
+ public static ListChangeListener wrap(ListChangeListener listener, Widget widget) {
+ return wrap(listener, widget.getDisplay());
+ }
+
+ /**
+ * Wrap the specified list change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTListChangeListenerWrapper
+ */
+ public static ListChangeListener wrap(ListChangeListener listener, Display display) {
+ return wrap(listener, display, DEFAULT_EXCEPTION_HANDLER);
+ }
+
+ /**
+ * Wrap the specified list change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be forwarded to the
+ * specified exception handler.
+ * @see SWTListChangeListenerWrapper
+ */
+ public static ListChangeListener wrap(ListChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ return new SWTListChangeListenerWrapper(listener, display, exceptionHandler);
+ }
+
+
+ // ********** state **********
+
+ /**
+ * Wrap the specified state change listener and forward events to it on
+ * the SWT UI thread, asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTStateChangeListenerWrapper
+ */
+ public static StateChangeListener wrap(StateChangeListener listener) {
+ return wrap(listener, DisplayTools.getDisplay());
+ }
+
+ /**
+ * Wrap the specified state change listener and forward events to it on
+ * the SWT UI thread associated with the specified viewer,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTStateChangeListenerWrapper
+ */
+ public static StateChangeListener wrap(StateChangeListener listener, Viewer viewer) {
+ return wrap(listener, viewer.getControl());
+ }
+
+ /**
+ * Wrap the specified state change listener and forward events to it on
+ * the SWT UI thread associated with the specified widget,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTStateChangeListenerWrapper
+ */
+ public static StateChangeListener wrap(StateChangeListener listener, Widget widget) {
+ return wrap(listener, widget.getDisplay());
+ }
+
+ /**
+ * Wrap the specified state change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be logged by the
+ * {@link JptCommonUiPlugin Dali UI plug-in}.
+ * @see SWTStateChangeListenerWrapper
+ */
+ public static StateChangeListener wrap(StateChangeListener listener, Display display) {
+ return wrap(listener, display, DEFAULT_EXCEPTION_HANDLER);
+ }
+
+ /**
+ * Wrap the specified state change listener and forward events to it on
+ * the SWT UI thread associated with the specified display,
+ * asynchronously if necessary.
+ * Any exceptions thrown by the specified listener will be forwarded to the
+ * specified exception handler.
+ * @see SWTStateChangeListenerWrapper
+ */
+ public static StateChangeListener wrap(StateChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ return new SWTStateChangeListenerWrapper(listener, display, exceptionHandler);
+ }
+
+
+ // ********** constructor **********
+
+ /**
+ * Suppress default constructor, ensuring non-instantiability.
+ */
+ private SWTListenerWrapperTools() {
+ super();
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java
index add628ba2f..92e6e4878f 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTPropertyChangeListenerWrapper.java
@@ -9,78 +9,28 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.listeners;
-import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
-import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
-import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
-import org.eclipse.jpt.common.utility.internal.collection.SynchronizedQueue;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
+import org.eclipse.swt.widgets.Display;
/**
* Wrap another property change listener and forward events to it on the SWT
- * UI thread, asynchronously if necessary. If the event arrived on the UI
- * thread that is probably because it was initiated by a UI widget; as a
- * result, we want to loop back synchronously so the events can be
- * short-circuited. (Typically, the adapter(s) between a <em>property</em> and
- * its corresponding UI widget are read-write; as opposed to the adapter(s)
- * between a <em>collection</em> (or <em>list</em>) and its UI widget, which
- * is read-only.)
- * <p>
- * Any events received earlier (on a non-UI thread) will be
- * forwarded, in the order received, before the current event is forwarded.
+ * UI thread, asynchronously if necessary.
*/
public class SWTPropertyChangeListenerWrapper
+ extends AbstractSWTListenerWrapper<PropertyChangeEvent, PropertyChangeListener>
implements PropertyChangeListener
{
- private final PropertyChangeListener listener;
- private final SynchronizedQueue<PropertyChangeEvent> events = new SynchronizedQueue<PropertyChangeEvent>();
-
-
- public SWTPropertyChangeListenerWrapper(PropertyChangeListener listener) {
- super();
- if (listener == null) {
- throw new NullPointerException();
- }
- this.listener = listener;
+ public SWTPropertyChangeListenerWrapper(PropertyChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ super(listener, display, exceptionHandler);
}
public void propertyChanged(PropertyChangeEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
- }
-
- /* CU private */ class ForwardEventsRunnable
- extends RunnableAdapter
- {
- @Override
- public void run() {
- SWTPropertyChangeListenerWrapper.this.forwardEvents();
- }
- }
-
- void forwardEvents() {
- Iterable<PropertyChangeEvent> temp = this.events.drain(); // debug
- for (PropertyChangeEvent event : temp) {
- try {
- this.listener.propertyChanged(event);
- } catch (RuntimeException ex) {
- JptCommonUiPlugin.instance().logError(ex);
- }
- }
- }
-
- /**
- * {@link DisplayTools#execute(Runnable)} seems to work OK;
- * but using {@link DisplayTools#syncExec(Runnable)} can somtimes make things
- * more predictable when debugging, at the risk of deadlocks.
- */
- private void execute(Runnable r) {
- DisplayTools.execute(r);
-// SWTUtil.syncExec(r);
+ this.delegate.handle(event);
}
- @Override
- public String toString() {
- return "SWT(" + this.listener + ')'; //$NON-NLS-1$
+ public void forward(PropertyChangeEvent event) {
+ this.listener.propertyChanged(event);
}
}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java
index b05b131328..066f38d1cf 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/listeners/SWTStateChangeListenerWrapper.java
@@ -9,73 +9,28 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.listeners;
-import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
-import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
-import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
-import org.eclipse.jpt.common.utility.internal.collection.SynchronizedQueue;
+import org.eclipse.jpt.common.utility.ExceptionHandler;
import org.eclipse.jpt.common.utility.model.event.StateChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.StateChangeListener;
+import org.eclipse.swt.widgets.Display;
/**
* Wrap another state change listener and forward events to it on the SWT
* UI thread, asynchronously if necessary.
- * <p>
- * Any events received earlier (on a non-UI thread) will be
- * forwarded, in the order received, before the current event is forwarded.
- * @see SWTPropertyChangeListenerWrapper
*/
public class SWTStateChangeListenerWrapper
+ extends AbstractSWTListenerWrapper<StateChangeEvent, StateChangeListener>
implements StateChangeListener
{
- private final StateChangeListener listener;
- private final SynchronizedQueue<StateChangeEvent> events = new SynchronizedQueue<StateChangeEvent>();
-
-
- public SWTStateChangeListenerWrapper(StateChangeListener listener) {
- super();
- if (listener == null) {
- throw new NullPointerException();
- }
- this.listener = listener;
+ public SWTStateChangeListenerWrapper(StateChangeListener listener, Display display, ExceptionHandler exceptionHandler) {
+ super(listener, display, exceptionHandler);
}
public void stateChanged(StateChangeEvent event) {
- this.events.enqueue(event);
- this.execute(new ForwardEventsRunnable());
- }
-
- /* CU private */ class ForwardEventsRunnable
- extends RunnableAdapter
- {
- @Override
- public void run() {
- SWTStateChangeListenerWrapper.this.forwardEvents();
- }
- }
-
- void forwardEvents() {
- Iterable<StateChangeEvent> temp = this.events.drain(); // debug
- for (StateChangeEvent event : temp) {
- try {
- this.listener.stateChanged(event);
- } catch (RuntimeException ex) {
- JptCommonUiPlugin.instance().logError(ex);
- }
- }
- }
-
- /**
- * {@link DisplayTools#execute(Runnable)} seems to work OK;
- * but using {@link DisplayTools#syncExec(Runnable)} can somtimes make things
- * more predictable when debugging, at the risk of deadlocks.
- */
- private void execute(Runnable r) {
- DisplayTools.execute(r);
-// SWTUtil.syncExec(r);
+ this.delegate.handle(event);
}
- @Override
- public String toString() {
- return "SWT(" + this.listener + ')'; //$NON-NLS-1$
+ public void forward(StateChangeEvent event) {
+ this.listener.stateChanged(event);
}
}
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java
index 03fdbfd00e..ca9a6f55a6 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/AbstractComboModelAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2012 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -12,8 +12,7 @@ package org.eclipse.jpt.common.ui.internal.swt;
import java.util.EventListener;
import java.util.EventObject;
import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.ListenerList;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
@@ -174,7 +173,7 @@ public abstract class AbstractComboModelAdapter<E> {
// ********** initialization **********
protected ListChangeListener buildListChangeListener() {
- return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildListChangeListener_());
}
protected ListChangeListener buildListChangeListener_() {
@@ -205,7 +204,7 @@ public abstract class AbstractComboModelAdapter<E> {
}
protected PropertyChangeListener buildSelectedItemChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildSelectedItemChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSelectedItemChangeListener_());
}
protected PropertyChangeListener buildSelectedItemChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java
index c75e2388c3..a0ace2ae03 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/DateTimeModelAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2012 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -9,12 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionEvent;
@@ -146,7 +146,7 @@ public class DateTimeModelAdapter {
// ********** initialization **********
protected PropertyChangeListener buildHoursPropertyChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildHoursPropertyChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildHoursPropertyChangeListener_(), this.dateTime);
}
protected PropertyChangeListener buildHoursPropertyChangeListener_() {
@@ -162,7 +162,7 @@ public class DateTimeModelAdapter {
}
protected PropertyChangeListener buildMinutesPropertyChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildMinutesPropertyChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildMinutesPropertyChangeListener_(), this.dateTime);
}
protected PropertyChangeListener buildMinutesPropertyChangeListener_() {
@@ -178,7 +178,7 @@ public class DateTimeModelAdapter {
}
protected PropertyChangeListener buildSecondsPropertyChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildSecondsPropertyChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSecondsPropertyChangeListener_(), this.dateTime);
}
protected PropertyChangeListener buildSecondsPropertyChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java
index 0e79f54a70..768f8788dc 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/SpinnerModelAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2012 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -9,12 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.ModifyEvent;
@@ -115,7 +115,7 @@ public class SpinnerModelAdapter {
// ********** initialization **********
protected PropertyChangeListener buildPropertyChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildPropertyChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildPropertyChangeListener_(), this.spinner);
}
protected PropertyChangeListener buildPropertyChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java
index 758ad84dea..4aa949e8c9 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableItemModelAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2012 Oracle. All rights reserved.
+ * Copyright (c) 2007, 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -10,7 +10,7 @@
package org.eclipse.jpt.common.ui.internal.swt;
import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.swt.events.DisposeAdapter;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
@@ -117,9 +117,7 @@ public class TableItemModelAdapter {
protected PropertyChangeListener buildPropertyChangeListener(int index) {
- return new SWTPropertyChangeListenerWrapper(
- this.buildPropertyChangeListener_(index)
- );
+ return SWTListenerWrapperTools.wrap(this.buildPropertyChangeListener_(index), this.tableItem);
}
protected PropertyChangeListener buildPropertyChangeListener_(int index) {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java
index c45f0887c4..8efabfa013 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TableModelAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2012 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -16,8 +16,7 @@ import java.util.EventListener;
import java.util.EventObject;
import java.util.List;
import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTCollectionChangeListenerWrapper;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.ListenerList;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
@@ -36,8 +35,8 @@ import org.eclipse.jpt.common.utility.model.listener.CollectionChangeListener;
import org.eclipse.jpt.common.utility.model.listener.ListChangeListener;
import org.eclipse.jpt.common.utility.model.value.CollectionValueModel;
import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiableCollectionValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
@@ -230,7 +229,7 @@ public class TableModelAdapter<E> {
// ********** initialization **********
protected ListChangeListener buildListChangeListener() {
- return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildListChangeListener_(), this.table);
}
protected ListChangeListener buildListChangeListener_() {
@@ -261,7 +260,7 @@ public class TableModelAdapter<E> {
}
protected CollectionChangeListener buildSelectedItemsChangeListener() {
- return new SWTCollectionChangeListenerWrapper(this.buildSelectedItemsChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSelectedItemsChangeListener_(), this.table);
}
protected CollectionChangeListener buildSelectedItemsChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java
index 9ccf3661c6..8b816ba6a5 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/TriStateCheckBoxModelAdapter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2012 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2013 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -10,13 +10,13 @@
package org.eclipse.jpt.common.ui.internal.swt;
import org.eclipse.core.runtime.Assert;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.widgets.TriStateCheckBox;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
@@ -97,7 +97,7 @@ public class TriStateCheckBoxModelAdapter {
// ********** initialization **********
protected PropertyChangeListener buildBooleanChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildBooleanChangeListener_(), this.button.getCheckBox());
}
protected PropertyChangeListener buildBooleanChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanButtonModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanButtonModelBinding.java
index ab29ff242e..f3440c2b8c 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanButtonModelBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanButtonModelBinding.java
@@ -9,12 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt.bind;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
@@ -97,7 +97,7 @@ final class BooleanButtonModelBinding {
// ********** initialization **********
private PropertyChangeListener buildBooleanChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildBooleanChangeListener_(), this.button);
}
private PropertyChangeListener buildBooleanChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanStateController.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanStateController.java
index 2bcf162ea1..a2baf00731 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanStateController.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/BooleanStateController.java
@@ -9,11 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt.bind;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.swt.events.DisposeAdapter;
import org.eclipse.jpt.common.ui.internal.swt.widgets.DisplayTools;
-import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
+import org.eclipse.jpt.common.utility.internal.RunnableAdapter;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeAdapter;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
@@ -89,7 +89,7 @@ abstract class BooleanStateController {
// ********** initialization **********
private PropertyChangeListener buildBooleanChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildBooleanChangeListener_());
}
private PropertyChangeListener buildBooleanChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/DropDownListBoxSelectionBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/DropDownListBoxSelectionBinding.java
index 13a7253196..8ba2eb1e32 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/DropDownListBoxSelectionBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/DropDownListBoxSelectionBinding.java
@@ -9,13 +9,13 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt.bind;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
import org.eclipse.jpt.common.utility.model.value.ListValueModel;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
@@ -98,7 +98,7 @@ final class DropDownListBoxSelectionBinding<E>
// ********** initialization **********
private PropertyChangeListener buildSelectedItemChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildSelectedItemChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSelectedItemChangeListener_());
}
private PropertyChangeListener buildSelectedItemChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/LabelModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/LabelModelBinding.java
index 6e8722cecc..38ec649acf 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/LabelModelBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/LabelModelBinding.java
@@ -9,7 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt.bind;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.swt.events.DisposeAdapter;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.internal.StringTools;
@@ -89,7 +89,7 @@ class LabelModelBinding {
}
private PropertyChangeListener buildImageListener() {
- return new SWTPropertyChangeListenerWrapper(new ImageListener());
+ return SWTListenerWrapperTools.wrap(new ImageListener(), this.labelAdapter.getWidget());
}
/* CU private */ class ImageListener
@@ -102,7 +102,7 @@ class LabelModelBinding {
}
private PropertyChangeListener buildTextListener() {
- return new SWTPropertyChangeListenerWrapper(new TextListener());
+ return SWTListenerWrapperTools.wrap(new TextListener(), this.labelAdapter.getWidget());
}
/* CU private */ class TextListener
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListBoxSelectionBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListBoxSelectionBinding.java
index b832be7820..6f0cae9663 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListBoxSelectionBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListBoxSelectionBinding.java
@@ -11,8 +11,7 @@ package org.eclipse.jpt.common.ui.internal.swt.bind;
import java.util.ArrayList;
import java.util.Arrays;
-
-import org.eclipse.jpt.common.ui.internal.listeners.SWTCollectionChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.CollectionAddEvent;
@@ -100,7 +99,7 @@ final class ListBoxSelectionBinding<E>
// ********** initialization **********
private CollectionChangeListener buildSelectedItemsChangeListener() {
- return new SWTCollectionChangeListenerWrapper(this.buildSelectedItemsChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSelectedItemsChangeListener_(), this.listBox);
}
private CollectionChangeListener buildSelectedItemsChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListWidgetModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListWidgetModelBinding.java
index 5757917d26..488b04fc3f 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListWidgetModelBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/ListWidgetModelBinding.java
@@ -10,7 +10,7 @@
package org.eclipse.jpt.common.ui.internal.swt.bind;
import java.util.ArrayList;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.ListAddEvent;
@@ -109,7 +109,7 @@ final class ListWidgetModelBinding<E> {
// ********** initialization **********
private ListChangeListener buildListChangeListener() {
- return new SWTListChangeListenerWrapper(this.buildListChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildListChangeListener_());
}
private ListChangeListener buildListChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/PageBookModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/PageBookModelBinding.java
index a7d8af3c73..a9c6edc072 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/PageBookModelBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/PageBookModelBinding.java
@@ -9,7 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt.bind;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.swt.events.DisposeAdapter;
import org.eclipse.jpt.common.ui.internal.swt.widgets.ControlTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
@@ -105,7 +105,7 @@ final class PageBookModelBinding<T> {
}
private PropertyChangeListener buildValueModelListener() {
- return new SWTPropertyChangeListenerWrapper(new ValueModelListener());
+ return SWTListenerWrapperTools.wrap(new ValueModelListener(), this.pageBook);
}
/* CU private */ class ValueModelListener
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/TextFieldModelBinding.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/TextFieldModelBinding.java
index bb3ea8442a..f5cada2476 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/TextFieldModelBinding.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/swt/bind/TextFieldModelBinding.java
@@ -9,12 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.common.ui.internal.swt.bind;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.ModifyEvent;
@@ -94,7 +94,7 @@ class TextFieldModelBinding {
// ********** initialization **********
private PropertyChangeListener buildTextModelChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildTextModelChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildTextModelChangeListener_(), this.textField);
}
private PropertyChangeListener buildTextModelChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java
index f1398740fc..fcad76f89c 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/AddRemovePane.java
@@ -11,7 +11,7 @@ package org.eclipse.jpt.common.ui.internal.widgets;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jpt.common.ui.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTListChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.utility.internal.iterable.EmptyIterable;
import org.eclipse.jpt.common.utility.internal.iterable.EmptyListIterable;
import org.eclipse.jpt.common.utility.internal.iterable.IterableTools;
@@ -287,7 +287,7 @@ public abstract class AddRemovePane<T extends Model, E extends Object> extends P
}
private ListChangeListener buildListChangeListener() {
- return new SWTListChangeListenerWrapper(buildListChangeListener_());
+ return SWTListenerWrapperTools.wrap(buildListChangeListener_());
}
private ListChangeListener buildListChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java
index 4426cd672d..d4e8273eae 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java
@@ -30,7 +30,7 @@ import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jpt.common.core.internal.utility.JavaProjectTools;
import org.eclipse.jpt.common.ui.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
import org.eclipse.jpt.common.utility.internal.ClassNameTools;
import org.eclipse.jpt.common.utility.internal.StringTools;
@@ -198,7 +198,7 @@ public abstract class ClassChooserPane<T extends Model> extends ChooserPane<T>
}
private PropertyChangeListener buildSubjectChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSubjectChangeListener_());
}
private PropertyChangeListener buildSubjectChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java
index 6dfe784c0b..6b14c2eb95 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/PackageChooserPane.java
@@ -20,13 +20,13 @@ import org.eclipse.jdt.ui.JavaUI;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.jface.window.Window;
import org.eclipse.jpt.common.ui.JptCommonUiMessages;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
import org.eclipse.jpt.common.utility.model.Model;
import org.eclipse.jpt.common.utility.model.event.PropertyChangeEvent;
import org.eclipse.jpt.common.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
@@ -98,7 +98,7 @@ public abstract class PackageChooserPane<T extends Model> extends ChooserPane<T>
}
private PropertyChangeListener buildSubjectChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSubjectChangeListener_());
}
private PropertyChangeListener buildSubjectChangeListener_() {
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java
index fc45a97f5e..3f5884d591 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java
+++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/Pane.java
@@ -19,7 +19,7 @@ import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jpt.common.ui.WidgetFactory;
import org.eclipse.jpt.common.ui.internal.WorkbenchTools;
-import org.eclipse.jpt.common.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
+import org.eclipse.jpt.common.ui.internal.listeners.SWTListenerWrapperTools;
import org.eclipse.jpt.common.ui.internal.plugin.JptCommonUiPlugin;
import org.eclipse.jpt.common.ui.internal.swt.ComboModelAdapter;
import org.eclipse.jpt.common.ui.internal.swt.DateTimeModelAdapter;
@@ -375,7 +375,7 @@ public abstract class Pane<T extends Model> {
}
private PropertyChangeListener buildSubjectChangeListener() {
- return new SWTPropertyChangeListenerWrapper(this.buildSubjectChangeListener_());
+ return SWTListenerWrapperTools.wrap(this.buildSubjectChangeListener_());
}
private PropertyChangeListener buildSubjectChangeListener_() {
@@ -431,7 +431,7 @@ public abstract class Pane<T extends Model> {
}
private PropertyChangeListener buildAspectChangeListener() {
- return new SWTPropertyChangeListenerWrapper(buildAspectChangeListener_());
+ return SWTListenerWrapperTools.wrap(buildAspectChangeListener_());
}
private PropertyChangeListener buildAspectChangeListener_() {

Back to the top