Author: bobtarling Date: 2008-11-03 14:31:47-0800 New Revision: 15963 Modified: trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java
Log: Remove excessive duplication of todo items for events Modified: trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java?view=diff&rev=15963&p1=trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java&p2=trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java&r1=15962&r2=15963 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java (original) +++ trunk/src/argouml-app/src/org/argouml/cognitive/ToDoList.java 2008-11-03 14:31:47-0800 @@ -246,7 +246,7 @@ } recomputeAllOffenders(); recomputeAllPosters(); - fireToDoItemsRemoved(Collections.unmodifiableList(removes)); + fireToDoItemsRemoved(removes); } } @@ -769,18 +769,20 @@ * @param theItems the todo items */ protected void fireToDoItemsAdded(List<ToDoItem> theItems) { - // Guaranteed to return a non-null array - Object[] listeners = listenerList.getListenerList(); - ToDoListEvent e = null; - // Process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length - 2; i >= 0; i -= 2) { - if (listeners[i] == ToDoListListener.class) { - // Lazily create the event: - if (e == null) { - e = new ToDoListEvent(theItems); + if (theItems.size() > 0) { + // Guaranteed to return a non-null array + final Object[] listeners = listenerList.getListenerList(); + ToDoListEvent e = null; + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) { + if (listeners[i] == ToDoListListener.class) { + // Lazily create the event: + if (e == null) { + e = new ToDoListEvent(theItems); + } + ((ToDoListListener) listeners[i + 1]).toDoItemsAdded(e); } - ((ToDoListListener) listeners[i + 1]).toDoItemsAdded(e); } } } @@ -797,21 +799,21 @@ /** * @param theItems the todo items */ - protected void fireToDoItemsRemoved(List<ToDoItem> theItems) { - List<ToDoItem> toDoItems = null; - // Guaranteed to return a non-null array - Object[] listeners = listenerList.getListenerList(); - ToDoListEvent e = null; - // Process the listeners last to first, notifying - // those that are interested in this event - for (int i = listeners.length - 2; i >= 0; i -= 2) { - if (listeners[i] == ToDoListListener.class) { - // Lazily create the event: - if (e == null) { - toDoItems = Collections.unmodifiableList(theItems); - e = new ToDoListEvent(toDoItems); + protected void fireToDoItemsRemoved(final List<ToDoItem> theItems) { + if (theItems.size() > 0) { + // Guaranteed to return a non-null array + final Object[] listeners = listenerList.getListenerList(); + ToDoListEvent e = null; + // Process the listeners last to first, notifying + // those that are interested in this event + for (int i = listeners.length - 2; i >= 0; i -= 2) { + if (listeners[i] == ToDoListListener.class) { + // Lazily create the event: + if (e == null) { + e = new ToDoListEvent(theItems); + } + ((ToDoListListener) listeners[i + 1]).toDoItemsRemoved(e); } - ((ToDoListListener) listeners[i + 1]).toDoItemsRemoved(e); } } } Modified: trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java?view=diff&rev=15963&p1=trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java&p2=trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java&r1=15962&r2=15963 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java (original) +++ trunk/src/argouml-app/src/org/argouml/cognitive/ToDoListEvent.java 2008-11-03 14:31:47-0800 @@ -25,7 +25,7 @@ package org.argouml.cognitive; -import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Vector; @@ -35,7 +35,7 @@ */ public class ToDoListEvent { - private List<ToDoItem> items = new ArrayList<ToDoItem>(); + private final List<ToDoItem> items; /** * The constructor. @@ -50,10 +50,10 @@ * Make a copy of the list to guarantee that it remains * stable throughout the lifetime of this event. * - * @param i the List of ToDoItems that were changed/added/removed + * @param toDoItems the List of ToDoItems that were changed/added/removed */ - public ToDoListEvent(List<ToDoItem> i) { - items.addAll(i); + public ToDoListEvent(final List<ToDoItem> toDoItems) { + items = Collections.unmodifiableList(toDoItems); } /** @@ -71,5 +71,4 @@ public List<ToDoItem> getToDoItemList() { return items; } - } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
