diff options
author | Artur Signell <artur@vaadin.com> | 2016-08-22 22:58:05 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2016-08-24 09:52:03 +0300 |
commit | fa2a40b38e8f06632f9b89c9acea1ed0d40c3410 (patch) | |
tree | 6dc536909086d04f88006be0c21480949047d665 /server | |
parent | 33b0e33c86613eab9811da30916d55d4f5f77930 (diff) | |
download | vaadin-framework-fa2a40b38e8f06632f9b89c9acea1ed0d40c3410.tar.gz vaadin-framework-fa2a40b38e8f06632f9b89c9acea1ed0d40c3410.zip |
Move Item to compatibility package
Change-Id: I51ad45a18d2dcfbd582c7e4bdcca99300d20cee0
Diffstat (limited to 'server')
4 files changed, 0 insertions, 741 deletions
diff --git a/server/src/main/java/com/vaadin/event/ItemClickEvent.java b/server/src/main/java/com/vaadin/event/ItemClickEvent.java deleted file mode 100644 index 3680b7764a..0000000000 --- a/server/src/main/java/com/vaadin/event/ItemClickEvent.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright 2000-2016 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.vaadin.event; - -import java.io.Serializable; -import java.lang.reflect.Method; - -import com.vaadin.event.MouseEvents.ClickEvent; -import com.vaadin.shared.MouseEventDetails; -import com.vaadin.ui.Component; -import com.vaadin.v7.data.Item; -import com.vaadin.v7.data.Property; - -/** - * - * Click event fired by a {@link Component} implementing - * {@link com.vaadin.v7.data.Container} interface. ItemClickEvents happens on an - * {@link Item} rendered somehow on terminal. Event may also contain a specific - * {@link Property} on which the click event happened. - * - * @since 5.3 - * - */ -@SuppressWarnings("serial") -public class ItemClickEvent extends ClickEvent implements Serializable { - private Item item; - private Object itemId; - private Object propertyId; - - public ItemClickEvent(Component source, Item item, Object itemId, - Object propertyId, MouseEventDetails details) { - super(source, details); - this.item = item; - this.itemId = itemId; - this.propertyId = propertyId; - } - - /** - * Gets the item on which the click event occurred. - * - * @return item which was clicked - */ - public Item getItem() { - return item; - } - - /** - * Gets a possible identifier in source for clicked Item - * - * @return - */ - public Object getItemId() { - return itemId; - } - - /** - * Returns property on which click event occurred. Returns null if source - * cannot be resolved at property level. For example if clicked a cell in - * table, the "column id" is returned. - * - * @return a property id of clicked property or null if click didn't occur - * on any distinct property. - */ - public Object getPropertyId() { - return propertyId; - } - - public static final Method ITEM_CLICK_METHOD; - - static { - try { - ITEM_CLICK_METHOD = ItemClickListener.class.getDeclaredMethod( - "itemClick", new Class[] { ItemClickEvent.class }); - } catch (final java.lang.NoSuchMethodException e) { - // This should never happen - throw new java.lang.RuntimeException(); - } - } - - public interface ItemClickListener extends Serializable { - public void itemClick(ItemClickEvent event); - } - - /** - * The interface for adding and removing <code>ItemClickEvent</code> - * listeners. By implementing this interface a class explicitly announces - * that it will generate an <code>ItemClickEvent</code> when one of its - * items is clicked. - * <p> - * Note: The general Java convention is not to explicitly declare that a - * class generates events, but to directly define the - * <code>addListener</code> and <code>removeListener</code> 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. - * </p> - * - * @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 addItemClickListener(ItemClickListener listener); - - /** - * @deprecated As of 7.0, replaced by - * {@link #addItemClickListener(ItemClickListener)} - **/ - @Deprecated - public void addListener(ItemClickListener listener); - - /** - * Removes an ItemClickListener. - * - * @param listener - * ItemClickListener to be removed - */ - public void removeItemClickListener(ItemClickListener listener); - - /** - * @deprecated As of 7.0, replaced by - * {@link #removeItemClickListener(ItemClickListener)} - **/ - @Deprecated - public void removeListener(ItemClickListener listener); - } - -} diff --git a/server/src/main/java/com/vaadin/v7/data/Item.java b/server/src/main/java/com/vaadin/v7/data/Item.java deleted file mode 100644 index d90cdca3f7..0000000000 --- a/server/src/main/java/com/vaadin/v7/data/Item.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * Copyright 2000-2016 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.vaadin.v7.data; - -import java.io.Serializable; -import java.util.Collection; - -/** - * <p> - * Provides a mechanism for handling a set of Properties, each associated to a - * locally unique non-null identifier. The interface is split into subinterfaces - * to enable a class to implement only the functionalities it needs. - * </p> - * - * @author Vaadin Ltd - * @since 3.0 - */ -public interface Item extends Serializable { - - /** - * Gets the Property corresponding to the given Property ID stored in the - * Item. If the Item does not contain the Property, <code>null</code> is - * returned. - * - * @param id - * identifier of the Property to get - * @return the Property with the given ID or <code>null</code> - */ - public Property getItemProperty(Object id); - - /** - * Gets the collection of IDs of all Properties stored in the Item. - * - * @return unmodifiable collection containing IDs of the Properties stored - * the Item - */ - public Collection<?> getItemPropertyIds(); - - /** - * Tries to add a new Property into the Item. - * - * <p> - * This functionality is optional. - * </p> - * - * @param id - * ID of the new Property - * @param property - * the Property to be added and associated with the id - * @return <code>true</code> if the operation succeeded, <code>false</code> - * if not - * @throws UnsupportedOperationException - * if the operation is not supported. - */ - public boolean addItemProperty(Object id, Property property) - throws UnsupportedOperationException; - - /** - * Removes the Property identified by ID from the Item. - * - * <p> - * This functionality is optional. - * </p> - * - * @param id - * ID of the Property to be removed - * @return <code>true</code> if the operation succeeded - * @throws UnsupportedOperationException - * if the operation is not supported. <code>false</code> if not - */ - public boolean removeItemProperty(Object id) - throws UnsupportedOperationException; - - /** - * Interface implemented by viewer classes capable of using an Item as a - * data source. - */ - public interface Viewer extends Serializable { - - /** - * Sets the Item that serves as the data source of the viewer. - * - * @param newDataSource - * The new data source Item - */ - public void setItemDataSource(Item newDataSource); - - /** - * Gets the Item serving as the data source of the viewer. - * - * @return data source Item - */ - public Item getItemDataSource(); - } - - /** - * Interface implemented by the <code>Editor</code> classes capable of - * editing the Item. Implementing this interface means that the Item serving - * as the data source of the editor can be modified through it. - * <p> - * Note : Not implementing the <code>Item.Editor</code> interface does not - * restrict the class from editing the contents of an internally. - * </p> - */ - public interface Editor extends Item.Viewer, Serializable { - - } - - /* Property set change event */ - - /** - * An <code>Event</code> object specifying the Item whose contents has been - * changed through the <code>Property</code> interface. - * <p> - * Note: The values stored in the Properties may change without triggering - * this event. - * </p> - */ - public interface PropertySetChangeEvent extends Serializable { - - /** - * Retrieves the Item whose contents has been modified. - * - * @return source Item of the event - */ - public Item getItem(); - } - - /** - * The listener interface for receiving <code>PropertySetChangeEvent</code> - * objects. - */ - public interface PropertySetChangeListener extends Serializable { - - /** - * Notifies this listener that the Item's property set has changed. - * - * @param event - * Property set change event object - */ - public void itemPropertySetChange(Item.PropertySetChangeEvent event); - } - - /** - * The interface for adding and removing <code>PropertySetChangeEvent</code> - * listeners. By implementing this interface a class explicitly announces - * that it will generate a <code>PropertySetChangeEvent</code> when its - * Property set is modified. - * <p> - * Note : The general Java convention is not to explicitly declare that a - * class generates events, but to directly define the - * <code>addListener</code> and <code>removeListener</code> 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. - * </p> - */ - public interface PropertySetChangeNotifier extends Serializable { - - /** - * Registers a new property set change listener for this Item. - * - * @param listener - * The new Listener to be registered. - */ - public void addPropertySetChangeListener( - Item.PropertySetChangeListener listener); - - /** - * @deprecated As of 7.0, replaced by - * {@link #addPropertySetChangeListener(PropertySetChangeListener)} - **/ - @Deprecated - public void addListener(Item.PropertySetChangeListener listener); - - /** - * Removes a previously registered property set change listener. - * - * @param listener - * Listener to be removed. - */ - public void removePropertySetChangeListener( - Item.PropertySetChangeListener listener); - - /** - * @deprecated As of 7.0, replaced by - * {@link #removePropertySetChangeListener(PropertySetChangeListener)} - **/ - @Deprecated - public void removeListener(Item.PropertySetChangeListener listener); - } -} diff --git a/server/src/main/java/com/vaadin/v7/data/util/PropertysetItem.java b/server/src/main/java/com/vaadin/v7/data/util/PropertysetItem.java deleted file mode 100644 index 092cf3f36e..0000000000 --- a/server/src/main/java/com/vaadin/v7/data/util/PropertysetItem.java +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright 2000-2016 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.vaadin.v7.data.util; - -import java.util.Collection; -import java.util.Collections; -import java.util.EventObject; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; - -import com.vaadin.v7.data.Item; -import com.vaadin.v7.data.Property; - -/** - * Class for handling a set of identified Properties. The elements contained in - * a </code>MapItem</code> can be referenced using locally unique identifiers. - * The class supports listeners who are interested in changes to the Property - * set managed by the class. - * - * @author Vaadin Ltd. - * @since 3.0 - */ -@SuppressWarnings("serial") -public class PropertysetItem - implements Item, Item.PropertySetChangeNotifier, Cloneable { - - /* Private representation of the item */ - - /** - * Mapping from property id to property. - */ - private HashMap<Object, Property<?>> map = new HashMap<Object, Property<?>>(); - - /** - * List of all property ids to maintain the order. - */ - private LinkedList<Object> list = new LinkedList<Object>(); - - /** - * List of property set modification listeners. - */ - private LinkedList<Item.PropertySetChangeListener> propertySetChangeListeners = null; - - /* Item methods */ - - /** - * Gets the Property corresponding to the given Property ID stored in the - * Item. If the Item does not contain the Property, <code>null</code> is - * returned. - * - * @param id - * the identifier of the Property to get. - * @return the Property with the given ID or <code>null</code> - */ - @Override - public Property getItemProperty(Object id) { - return map.get(id); - } - - /** - * Gets the collection of IDs of all Properties stored in the Item. - * - * @return unmodifiable collection containing IDs of the Properties stored - * the Item - */ - @Override - public Collection<?> getItemPropertyIds() { - return Collections.unmodifiableCollection(list); - } - - /* Item.Managed methods */ - - /** - * Removes the Property identified by ID from the Item. This functionality - * is optional. If the method is not implemented, the method always returns - * <code>false</code>. - * - * @param id - * the ID of the Property to be removed. - * @return <code>true</code> if the operation succeeded <code>false</code> - * if not - */ - @Override - public boolean removeItemProperty(Object id) { - - // Cant remove missing properties - if (map.remove(id) == null) { - return false; - } - list.remove(id); - - // Send change events - fireItemPropertySetChange(); - - return true; - } - - /** - * Tries to add a new Property into the Item. - * - * @param id - * the ID of the new Property. - * @param property - * the Property to be added and associated with the id. - * @return <code>true</code> if the operation succeeded, <code>false</code> - * if not - */ - @Override - public boolean addItemProperty(Object id, Property property) { - - // Null ids are not accepted - if (id == null) { - throw new NullPointerException("Item property id can not be null"); - } - - // Cant add a property twice - if (map.containsKey(id)) { - return false; - } - - // Put the property to map - map.put(id, property); - list.add(id); - - // Send event - fireItemPropertySetChange(); - - return true; - } - - /** - * Gets the <code>String</code> representation of the contents of the Item. - * The format of the string is a space separated catenation of the - * <code>String</code> representations of the Properties contained by the - * Item. - * - * @return <code>String</code> representation of the Item contents - */ - @Override - public String toString() { - String retValue = ""; - - for (final Iterator<?> i = getItemPropertyIds().iterator(); i - .hasNext();) { - final Object propertyId = i.next(); - retValue += getItemProperty(propertyId).getValue(); - if (i.hasNext()) { - retValue += " "; - } - } - - return retValue; - } - - /* Notifiers */ - - /** - * An <code>event</code> object specifying an Item whose Property set has - * changed. - * - * @author Vaadin Ltd. - * @since 3.0 - */ - private static class PropertySetChangeEvent extends EventObject - implements Item.PropertySetChangeEvent { - - private PropertySetChangeEvent(Item source) { - super(source); - } - - /** - * Gets the Item whose Property set has changed. - * - * @return source object of the event as an <code>Item</code> - */ - @Override - public Item getItem() { - return (Item) getSource(); - } - } - - /** - * Registers a new property set change listener for this Item. - * - * @param listener - * the new Listener to be registered. - */ - @Override - public void addPropertySetChangeListener( - Item.PropertySetChangeListener listener) { - if (propertySetChangeListeners == null) { - propertySetChangeListeners = new LinkedList<PropertySetChangeListener>(); - } - propertySetChangeListeners.add(listener); - } - - /** - * @deprecated As of 7.0, replaced by - * {@link #addPropertySetChangeListener(com.vaadin.v7.data.Item.PropertySetChangeListener)} - **/ - @Override - @Deprecated - public void addListener(Item.PropertySetChangeListener listener) { - addPropertySetChangeListener(listener); - } - - /** - * Removes a previously registered property set change listener. - * - * @param listener - * the Listener to be removed. - */ - @Override - public void removePropertySetChangeListener( - Item.PropertySetChangeListener listener) { - if (propertySetChangeListeners != null) { - propertySetChangeListeners.remove(listener); - } - } - - /** - * @deprecated As of 7.0, replaced by - * {@link #removePropertySetChangeListener(com.vaadin.v7.data.Item.PropertySetChangeListener)} - **/ - @Override - @Deprecated - public void removeListener(Item.PropertySetChangeListener listener) { - removePropertySetChangeListener(listener); - } - - /** - * Sends a Property set change event to all interested listeners. - */ - private void fireItemPropertySetChange() { - if (propertySetChangeListeners != null) { - final Object[] l = propertySetChangeListeners.toArray(); - final Item.PropertySetChangeEvent event = new PropertysetItem.PropertySetChangeEvent( - this); - for (int i = 0; i < l.length; i++) { - ((Item.PropertySetChangeListener) l[i]) - .itemPropertySetChange(event); - } - } - } - - public Collection<?> getListeners(Class<?> eventType) { - if (Item.PropertySetChangeEvent.class.isAssignableFrom(eventType)) { - if (propertySetChangeListeners == null) { - return Collections.EMPTY_LIST; - } else { - return Collections - .unmodifiableCollection(propertySetChangeListeners); - } - } - - return Collections.EMPTY_LIST; - } - - /** - * Creates and returns a copy of this object. - * <p> - * The method <code>clone</code> performs a shallow copy of the - * <code>PropertysetItem</code>. - * </p> - * <p> - * Note : All arrays are considered to implement the interface Cloneable. - * Otherwise, this method creates a new instance of the class of this object - * and initializes all its fields with exactly the contents of the - * corresponding fields of this object, as if by assignment, the contents of - * the fields are not themselves cloned. Thus, this method performs a - * "shallow copy" of this object, not a "deep copy" operation. - * </p> - * - * @throws CloneNotSupportedException - * if the object's class does not support the Cloneable - * interface. - * - * @see java.lang.Object#clone() - */ - @Override - public Object clone() throws CloneNotSupportedException { - - final PropertysetItem npsi = new PropertysetItem(); - - npsi.list = list != null ? (LinkedList<Object>) list.clone() : null; - npsi.propertySetChangeListeners = propertySetChangeListeners != null - ? (LinkedList<PropertySetChangeListener>) propertySetChangeListeners - .clone() - : null; - npsi.map = (HashMap<Object, Property<?>>) map.clone(); - - return npsi; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - - if (obj == null || !(obj instanceof PropertysetItem)) { - return false; - } - - final PropertysetItem other = (PropertysetItem) obj; - - if (other.list != list) { - if (other.list == null) { - return false; - } - if (!other.list.equals(list)) { - return false; - } - } - if (other.map != map) { - if (other.map == null) { - return false; - } - if (!other.map.equals(map)) { - return false; - } - } - if (other.propertySetChangeListeners != propertySetChangeListeners) { - boolean thisEmpty = (propertySetChangeListeners == null - || propertySetChangeListeners.isEmpty()); - boolean otherEmpty = (other.propertySetChangeListeners == null - || other.propertySetChangeListeners.isEmpty()); - if (thisEmpty && otherEmpty) { - return true; - } - if (otherEmpty) { - return false; - } - if (!other.propertySetChangeListeners - .equals(propertySetChangeListeners)) { - return false; - } - } - - return true; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - - return (list == null ? 0 : list.hashCode()) - ^ (map == null ? 0 : map.hashCode()) - ^ ((propertySetChangeListeners == null - || propertySetChangeListeners.isEmpty()) ? 0 - : propertySetChangeListeners.hashCode()); - } -} diff --git a/server/src/test/java/com/vaadin/tests/server/PropertysetItemListenersTest.java b/server/src/test/java/com/vaadin/tests/server/PropertysetItemListenersTest.java deleted file mode 100644 index 883130db32..0000000000 --- a/server/src/test/java/com/vaadin/tests/server/PropertysetItemListenersTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.vaadin.tests.server; - -import com.vaadin.tests.server.component.AbstractListenerMethodsTestBase; -import com.vaadin.v7.data.Item.PropertySetChangeEvent; -import com.vaadin.v7.data.Item.PropertySetChangeListener; -import com.vaadin.v7.data.util.PropertysetItem; - -public class PropertysetItemListenersTest - extends AbstractListenerMethodsTestBase { - public void testPropertySetChangeListenerAddGetRemove() throws Exception { - testListenerAddGetRemove(PropertysetItem.class, - PropertySetChangeEvent.class, PropertySetChangeListener.class); - } -} |