commons.java subversion repository

sventon subversion web client - http://www.sventon.org
[show recent changes]
 
  Help
HEAD
Rev: 679 - https://secure.bioinfweb.info/Code/svn/commons.java / trunk / main / info.bioinfweb.commons.core / src / info / bioinfweb / commons / collections / observable / ListRemoveEvent.java
Show File - ListRemoveEvent.java  [show properties]
spinner
/*
 * bioinfweb.commons - Shared components of bioinfweb projects made available in a Java library
 * Copyright (C) 2008-2011, 2013-2018 Ben Stöver, Sarah Wiechers
 * <http://commons.bioinfweb.info/Java>
 * 
 * This file is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
10   * 
11   * This file is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   * GNU Lesser General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Lesser General Public License
17   * along with this program. If not, see <http://www.gnu.org/licenses/>.
18   */
19  package info.bioinfweb.commons.collections.observable;
20 
21 
22  import info.bioinfweb.commons.collections.ListChangeType;
23 
24  import java.util.Collection;
25  import java.util.List;
26 
27 
28 
29  /**
30   * Event that indicates that one or more elements have been removed from an implementation of {@link List}.
31   * 
32   * @author Ben St&ouml;ver
33   * @since 1.1.0
34   * 
35   * @see ListChangeListener
36   * @see ObservableList
37   *
38   * @param <L> the type of elements in the list to be modified
39   * @param <E> the type of elements will be or have been removed (Note that these types can only be different if
40   *            this event is fired before the removal, because then elements which are not in the associated list
41   *            might anyway be requested to be removed.)
42   */
43  public class ListRemoveEvent<L, E> extends ListChangeEvent<L> {
44      private ListMultipleChangesEvent<E> decoratedEvent;
45      
46      
47      /**
48       * Creates a new event object.
49       * 
50       * @param source - the list instance that has been modified
51       * @param affectedElements - a list of elements that have been removed
52       */
53      public ListRemoveEvent(List<L> source, int index, Collection<? extends E> affectedElements) {
54          super(source, ListChangeType.DELETION, index);
55          decoratedEvent = new ListMultipleChangesEvent<E>((List)source, ListChangeType.DELETION, index, affectedElements);  // null cannot be passed as the list, because EventObject would than throw an exception. //TODO Think about better solution.
56      }
57 
58      
59      /**
60       * Creates a new event object. Use this constructor if only one element is affected.
61       * 
62       * @param source the list instance that has been modified
63       * @param index the index the first affected element has in the list
64       * @param affectedElement a list of elements that have been removed
65       */
66      public ListRemoveEvent(List<L> source, int index, E affectedElement) {
67          super(source, ListChangeType.DELETION, index);
68          decoratedEvent = new ListMultipleChangesEvent<E>((List)source, ListChangeType.DELETION, index, affectedElement);  // null cannot be passed as the list, because EventObject would than throw an exception. //TODO Think about better solution.
69      }
70 
71 
72      /**
73       * Returns a collection of all elements that will be or have been removed from the list.
74       * <p>
75       * Note that this collection may contain elements have never been contained in the associated
76       * list, if this event is fired before the removal operation. 
77       * 
78       * @return a collection of the affected list elements
79       */
80      public Collection<? extends E> getAffectedElements() {
81          return decoratedEvent.getAffectedElements();
82      }
83 
84 
85      /**
86       * Returns the first affected element. Convenience method if only one element is affected.
87       * 
88       * @return the fist affected element in {@link #getAffectedElements()}
89       */
90      public E getAffectedElement() {
91          return decoratedEvent.getAffectedElement();
92      }
93  }


feed icon

sventon 2.5.1

bioinfweb RSS feed bioinfweb on twitter bioinfweb.commons.java on GitHub
bioinfweb - Biology & Informatics Website