From d9aae37b8d56f9b8363690df8ca51c3f332873e6 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 5 Nov 2010 16:00:14 +0000 Subject: #5821 - ItemClickSource should be ItemClickNotifier svn changeset:15889/svn branch:6.5 --- src/com/vaadin/event/ItemClickEvent.java | 39 ++++++++++++++++++++++++++++++++ src/com/vaadin/ui/Table.java | 7 +++--- src/com/vaadin/ui/Tree.java | 6 +++-- 3 files changed, 47 insertions(+), 5 deletions(-) (limited to 'src/com/vaadin') diff --git a/src/com/vaadin/event/ItemClickEvent.java b/src/com/vaadin/event/ItemClickEvent.java index ab8d652c6e..6ec1c59be6 100644 --- a/src/com/vaadin/event/ItemClickEvent.java +++ b/src/com/vaadin/event/ItemClickEvent.java @@ -88,7 +88,10 @@ public class ItemClickEvent extends ClickEvent implements Serializable { * * @link {@link Container} interface may support emitting * {@link ItemClickEvent}s. + * + * @deprecated Use {@link ItemClickNotifier} instead. */ + @Deprecated public interface ItemClickSource extends Serializable { /** * Register listener to handle ItemClickEvents. @@ -110,4 +113,40 @@ public class ItemClickEvent extends ClickEvent implements Serializable { public void removeListener(ItemClickListener listener); } + /** + * The interface for adding and removing ItemClickEvent + * listeners. By implementing this interface a class explicitly announces + * that it will generate an ItemClickEvent when one of its + * items is clicked. + *

+ * Note: The general Java convention is not to explicitly declare that a + * class generates events, but to directly define the + * addListener and removeListener methods. That + * way the caller of these methods has no real way of finding out if the + * class really will send the events, or if it just defines the methods to + * be able to implement an interface. + *

+ * + * @since 6.5 + * @see ItemClickListener + * @see ItemClickEvent + */ + public interface ItemClickNotifier extends Serializable { + /** + * Register a listener to handle {@link ItemClickEvent}s. + * + * @param listener + * ItemClickListener to be registered + */ + public void addListener(ItemClickListener listener); + + /** + * Removes an ItemClickListener. + * + * @param listener + * ItemClickListener to be removed + */ + public void removeListener(ItemClickListener listener); + } + } diff --git a/src/com/vaadin/ui/Table.java b/src/com/vaadin/ui/Table.java index 12f69ec606..56662112e3 100644 --- a/src/com/vaadin/ui/Table.java +++ b/src/com/vaadin/ui/Table.java @@ -30,6 +30,7 @@ import com.vaadin.event.Action.Handler; import com.vaadin.event.DataBoundTransferable; import com.vaadin.event.ItemClickEvent; import com.vaadin.event.ItemClickEvent.ItemClickListener; +import com.vaadin.event.ItemClickEvent.ItemClickNotifier; import com.vaadin.event.ItemClickEvent.ItemClickSource; import com.vaadin.event.MouseEvents.ClickEvent; import com.vaadin.event.dd.DragAndDropEvent; @@ -69,11 +70,11 @@ import com.vaadin.terminal.gwt.client.ui.dd.VLazyInitItemIdentifiers; * @VERSION@ * @since 3.0 */ -@SuppressWarnings("serial") +@SuppressWarnings({ "serial", "deprecation" }) @ClientWidget(VScrollTable.class) public class Table extends AbstractSelect implements Action.Container, - Container.Ordered, Container.Sortable, ItemClickSource, DragSource, - DropTarget { + Container.Ordered, Container.Sortable, ItemClickSource, + ItemClickNotifier, DragSource, DropTarget { private static final Logger logger = Logger .getLogger(Table.class.getName()); diff --git a/src/com/vaadin/ui/Tree.java b/src/com/vaadin/ui/Tree.java index 2deb0bab1f..79ce7cf47f 100644 --- a/src/com/vaadin/ui/Tree.java +++ b/src/com/vaadin/ui/Tree.java @@ -26,6 +26,7 @@ import com.vaadin.event.Action; import com.vaadin.event.DataBoundTransferable; import com.vaadin.event.ItemClickEvent; import com.vaadin.event.ItemClickEvent.ItemClickListener; +import com.vaadin.event.ItemClickEvent.ItemClickNotifier; import com.vaadin.event.ItemClickEvent.ItemClickSource; import com.vaadin.event.Transferable; import com.vaadin.event.dd.DragAndDropEvent; @@ -57,10 +58,11 @@ import com.vaadin.tools.ReflectTools; * @VERSION@ * @since 3.0 */ -@SuppressWarnings("serial") +@SuppressWarnings({ "serial", "deprecation" }) @ClientWidget(VTree.class) public class Tree extends AbstractSelect implements Container.Hierarchical, - Action.Container, ItemClickSource, DragSource, DropTarget { + Action.Container, ItemClickSource, ItemClickNotifier, DragSource, + DropTarget { /* Private members */ -- cgit v1.2.3