From 9fc2409cb33797c536cd2e7e9ef035a5422c5e58 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Thu, 11 Dec 2014 14:34:05 +0200 Subject: Make SelectionChangeEvent general and move it to event packacge (#13334) Change-Id: I232bf1d021dd95dfa3e9697cef4d8e9987da3373 --- .../src/com/vaadin/event/SelectionChangeEvent.java | 110 +++++++++++++++++++++ server/src/com/vaadin/ui/Grid.java | 6 +- .../grid/selection/SelectionChangeEvent.java | 73 -------------- .../grid/selection/SelectionChangeListener.java | 35 ------- .../grid/selection/SelectionChangeNotifier.java | 43 -------- 5 files changed, 113 insertions(+), 154 deletions(-) create mode 100644 server/src/com/vaadin/event/SelectionChangeEvent.java delete mode 100644 server/src/com/vaadin/ui/components/grid/selection/SelectionChangeEvent.java delete mode 100644 server/src/com/vaadin/ui/components/grid/selection/SelectionChangeListener.java delete mode 100644 server/src/com/vaadin/ui/components/grid/selection/SelectionChangeNotifier.java (limited to 'server/src') diff --git a/server/src/com/vaadin/event/SelectionChangeEvent.java b/server/src/com/vaadin/event/SelectionChangeEvent.java new file mode 100644 index 0000000000..adc7b13d49 --- /dev/null +++ b/server/src/com/vaadin/event/SelectionChangeEvent.java @@ -0,0 +1,110 @@ +/* + * Copyright 2000-2014 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.util.Collection; +import java.util.EventObject; +import java.util.LinkedHashSet; +import java.util.Set; + +import com.google.gwt.thirdparty.guava.common.collect.Sets; + +/** + * An event that specifies what in a selection has changed, and where the + * selection took place. + * + * @since + * @author Vaadin Ltd + */ +public class SelectionChangeEvent extends EventObject { + + private LinkedHashSet oldSelection; + private LinkedHashSet newSelection; + + public SelectionChangeEvent(Object source, Collection oldSelection, + Collection newSelection) { + super(source); + this.oldSelection = new LinkedHashSet(oldSelection); + this.newSelection = new LinkedHashSet(newSelection); + } + + /** + * A {@link Collection} of all the itemIds that became selected. + *

+ * Note: this excludes all itemIds that might have been previously + * selected. + * + * @return a Collection of the itemIds that became selected + */ + public Set getAdded() { + return Sets.difference(newSelection, oldSelection); + } + + /** + * A {@link Collection} of all the itemIds that became deselected. + *

+ * Note: this excludes all itemIds that might have been previously + * deselected. + * + * @return a Collection of the itemIds that became deselected + */ + public Set getRemoved() { + return Sets.difference(oldSelection, newSelection); + } + + /** + * The listener interface for receiving {@link SelectionChangeEvent + * SelectionChangeEvents}. + * + * @since + * @author Vaadin Ltd + */ + public interface SelectionChangeListener extends Serializable { + /** + * Notifies the listener that the selection state has changed. + * + * @param event + * the selection change event + */ + void selectionChange(SelectionChangeEvent event); + } + + /** + * The interface for adding and removing listeners for + * {@link SelectionChangeEvent SelectionChangeEvents}. + * + * @since + * @author Vaadin Ltd + */ + public interface SelectionChangeNotifier extends Serializable { + /** + * Registers a new selection change listener + * + * @param listener + * the listener to register + */ + void addSelectionChangeListener(SelectionChangeListener listener); + + /** + * Removes a previously registered selection change listener + * + * @param listener + * the listener to remove + */ + void removeSelectionChangeListener(SelectionChangeListener listener); + } +} diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java index 2ead3bf514..ca69387301 100644 --- a/server/src/com/vaadin/ui/Grid.java +++ b/server/src/com/vaadin/ui/Grid.java @@ -54,6 +54,9 @@ import com.vaadin.data.fieldgroup.FieldGroupFieldFactory; import com.vaadin.data.util.IndexedContainer; import com.vaadin.data.util.converter.Converter; import com.vaadin.data.util.converter.ConverterUtil; +import com.vaadin.event.SelectionChangeEvent; +import com.vaadin.event.SelectionChangeEvent.SelectionChangeListener; +import com.vaadin.event.SelectionChangeEvent.SelectionChangeNotifier; import com.vaadin.server.AbstractClientConnector; import com.vaadin.server.AbstractExtension; import com.vaadin.server.ClientConnector; @@ -80,9 +83,6 @@ import com.vaadin.shared.ui.grid.SortEventOriginator; import com.vaadin.shared.util.SharedUtil; import com.vaadin.ui.components.grid.SortOrderChangeEvent; import com.vaadin.ui.components.grid.SortOrderChangeListener; -import com.vaadin.ui.components.grid.selection.SelectionChangeEvent; -import com.vaadin.ui.components.grid.selection.SelectionChangeListener; -import com.vaadin.ui.components.grid.selection.SelectionChangeNotifier; import com.vaadin.ui.components.grid.sort.Sort; import com.vaadin.ui.components.grid.sort.SortOrder; import com.vaadin.ui.renderer.Renderer; diff --git a/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeEvent.java b/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeEvent.java deleted file mode 100644 index 4d45a32615..0000000000 --- a/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeEvent.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2000-2014 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.ui.components.grid.selection; - -import java.util.Collection; -import java.util.EventObject; -import java.util.LinkedHashSet; -import java.util.Set; - -import com.google.gwt.thirdparty.guava.common.collect.Sets; -import com.vaadin.ui.Grid; - -/** - * An event that specifies what in a selection has changed, and where the - * selection took place. - * - * @since - * @author Vaadin Ltd - */ -public class SelectionChangeEvent extends EventObject { - - private LinkedHashSet oldSelection; - private LinkedHashSet newSelection; - - public SelectionChangeEvent(Grid source, Collection oldSelection, - Collection newSelection) { - super(source); - this.oldSelection = new LinkedHashSet(oldSelection); - this.newSelection = new LinkedHashSet(newSelection); - } - - /** - * A {@link Collection} of all the itemIds that became selected. - *

- * Note: this excludes all itemIds that might have been previously - * selected. - * - * @return a Collection of the itemIds that became selected - */ - public Set getAdded() { - return Sets.difference(newSelection, oldSelection); - } - - /** - * A {@link Collection} of all the itemIds that became deselected. - *

- * Note: this excludes all itemIds that might have been previously - * deselected. - * - * @return a Collection of the itemIds that became deselected - */ - public Set getRemoved() { - return Sets.difference(oldSelection, newSelection); - } - - @Override - public Grid getSource() { - return (Grid) super.getSource(); - } -} diff --git a/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeListener.java b/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeListener.java deleted file mode 100644 index 0d10e8c74d..0000000000 --- a/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeListener.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2000-2014 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.ui.components.grid.selection; - -import java.io.Serializable; - -/** - * The listener interface for receiving {@link SelectionChangeEvent - * SelectionChangeEvents}. - * - * @since - * @author Vaadin Ltd - */ -public interface SelectionChangeListener extends Serializable { - /** - * Notifies the listener that the selection state has changed. - * - * @param event - * the selection change event - */ - void selectionChange(SelectionChangeEvent event); -} diff --git a/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeNotifier.java b/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeNotifier.java deleted file mode 100644 index 40cef965dd..0000000000 --- a/server/src/com/vaadin/ui/components/grid/selection/SelectionChangeNotifier.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2000-2014 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.ui.components.grid.selection; - -import java.io.Serializable; - -/** - * The interface for adding and removing listeners for - * {@link SelectionChangeEvent SelectionChangeEvents}. - * - * @since - * @author Vaadin Ltd - */ -public interface SelectionChangeNotifier extends Serializable { - /** - * Registers a new selection change listener - * - * @param listener - * the listener to register - */ - void addSelectionChangeListener(SelectionChangeListener listener); - - /** - * Removes a previously registered selection change listener - * - * @param listener - * the listener to remove - */ - void removeSelectionChangeListener(SelectionChangeListener listener); -} -- cgit v1.2.3