diff options
author | bvosburgh | 2009-08-21 05:38:26 +0000 |
---|---|---|
committer | bvosburgh | 2009-08-21 05:38:26 +0000 |
commit | 1c7deb63e61a3c79602dc9d7534e82a4361bdcfb (patch) | |
tree | d876545bed7101c5258dd3415d9253229e16675e /jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse | |
parent | 21139d2e646e3b29a07b83e1d178ba1ae3f8949a (diff) | |
download | webtools.dali-1c7deb63e61a3c79602dc9d7534e82a4361bdcfb.tar.gz webtools.dali-1c7deb63e61a3c79602dc9d7534e82a4361bdcfb.tar.xz webtools.dali-1c7deb63e61a3c79602dc9d7534e82a4361bdcfb.zip |
add SortedListValueModelWrapper
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse')
10 files changed, 292 insertions, 27 deletions
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java index b00323885e..e35d3c137d 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java @@ -12,15 +12,18 @@ package org.eclipse.jpt.utility.tests.internal.model.value; import java.util.ArrayList; import java.util.Collection; import java.util.List; + import javax.swing.Icon; + import junit.framework.TestCase; + import org.eclipse.jpt.utility.internal.Bag; import org.eclipse.jpt.utility.internal.HashBag; import org.eclipse.jpt.utility.internal.model.AbstractModel; import org.eclipse.jpt.utility.internal.model.value.ItemCollectionListValueModelAdapter; import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel; import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.swing.Displayable; import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.tests.internal.TestTools; @@ -147,7 +150,7 @@ public class ItemCollectionListValueModelAdapterTests extends TestCase { public void testGet() throws Exception { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemCollectionListValueModelAdapter<Junk>(listHolder, Junk.STUFF_COLLECTION)); + ListValueModel<Junk> listValueModel = new SortedListValueModelWrapper<Junk>(new ItemCollectionListValueModelAdapter<Junk>(listHolder, Junk.STUFF_COLLECTION)); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); this.verifyHasListeners(listValueModel); assertEquals(this.bar, listValueModel.get(0)); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java index 6ddc37c18d..aaaa7f8dba 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java @@ -12,15 +12,18 @@ package org.eclipse.jpt.utility.tests.internal.model.value; import java.util.ArrayList; import java.util.Collection; import java.util.List; + import javax.swing.Icon; + import junit.framework.TestCase; + import org.eclipse.jpt.utility.internal.Bag; import org.eclipse.jpt.utility.internal.HashBag; import org.eclipse.jpt.utility.internal.model.AbstractModel; import org.eclipse.jpt.utility.internal.model.value.ItemListListValueModelAdapter; import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel; import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; -import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.swing.Displayable; import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.tests.internal.TestTools; @@ -147,7 +150,7 @@ public class ItemListListValueModelAdapterTests extends TestCase { public void testGet() throws Exception { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemListListValueModelAdapter<Junk>(listHolder, Junk.STUFF_LIST)); + ListValueModel<Junk> listValueModel = new SortedListValueModelWrapper<Junk>(new ItemListListValueModelAdapter<Junk>(listHolder, Junk.STUFF_LIST)); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); this.verifyHasListeners(listValueModel); assertEquals(this.bar, listValueModel.get(0)); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java index aaead1ac70..a30ced90e7 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java @@ -16,8 +16,11 @@ import java.util.Iterator; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; + import javax.swing.Icon; + import junit.framework.TestCase; + import org.eclipse.jpt.utility.internal.Bag; import org.eclipse.jpt.utility.internal.HashBag; import org.eclipse.jpt.utility.internal.model.AbstractModel; @@ -25,6 +28,7 @@ import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAd import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel; import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.swing.Displayable; import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.tests.internal.TestTools; @@ -174,7 +178,7 @@ public class ItemPropertyListValueModelAdapterTests extends TestCase { private void verifyListSort(Comparator<Junk> comparator) { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder, comparator), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); + ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelWrapper<Junk>(listHolder, comparator), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); assertEquals(6, synchList.size()); this.compareSort(listValueModel, synchList, comparator); @@ -216,7 +220,7 @@ public class ItemPropertyListValueModelAdapterTests extends TestCase { assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); - ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); + ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelWrapper<Junk>(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY)); assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY)); @@ -243,7 +247,7 @@ public class ItemPropertyListValueModelAdapterTests extends TestCase { public void testGetSize() throws Exception { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); + ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelWrapper<Junk>(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); this.verifyHasListeners(listValueModel); assertEquals(6, listValueModel.size()); @@ -252,7 +256,7 @@ public class ItemPropertyListValueModelAdapterTests extends TestCase { public void testGet() throws Exception { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemPropertyListValueModelAdapter<Junk>(listHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY)); + ListValueModel<Junk> listValueModel = new SortedListValueModelWrapper<Junk>(new ItemPropertyListValueModelAdapter<Junk>(listHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY)); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); this.verifyHasListeners(listValueModel); assertEquals(this.bar, listValueModel.get(0)); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java index 6285f39409..e95c36b4ea 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java @@ -16,7 +16,9 @@ import java.util.Iterator; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; + import junit.framework.TestCase; + import org.eclipse.jpt.utility.internal.Bag; import org.eclipse.jpt.utility.internal.HashBag; import org.eclipse.jpt.utility.internal.model.AbstractModel; @@ -24,9 +26,11 @@ import org.eclipse.jpt.utility.internal.model.value.ItemStateListValueModelAdapt import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel; import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.tests.internal.TestTools; +@SuppressWarnings("nls") public class ItemStateListValueModelAdapterTests extends TestCase { private Junk foo; private Junk bar; @@ -158,7 +162,7 @@ public class ItemStateListValueModelAdapterTests extends TestCase { private void verifyListSort(Comparator<Junk> comparator) { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder, comparator)); + ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelWrapper<Junk>(listHolder, comparator)); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); assertEquals(6, synchList.size()); this.compareSort(listValueModel, synchList, comparator); @@ -196,7 +200,7 @@ public class ItemStateListValueModelAdapterTests extends TestCase { assertFalse(this.jaz.hasAnyStateChangeListeners()); assertFalse(this.jaz.hasAnyStateChangeListeners()); - ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder)); + ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelWrapper<Junk>(listHolder)); assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); assertFalse(this.foo.hasAnyStateChangeListeners()); assertFalse(this.foo.hasAnyStateChangeListeners()); @@ -223,7 +227,7 @@ public class ItemStateListValueModelAdapterTests extends TestCase { public void testGetSize() throws Exception { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder)); + ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelWrapper<Junk>(listHolder)); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); this.verifyHasListeners(listValueModel); assertEquals(6, listValueModel.size()); @@ -232,7 +236,7 @@ public class ItemStateListValueModelAdapterTests extends TestCase { public void testGet() throws Exception { SimpleListValueModel<Junk> listHolder = this.buildListHolder(); - ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemStateListValueModelAdapter<Junk>(listHolder)); + ListValueModel<Junk> listValueModel = new SortedListValueModelWrapper<Junk>(new ItemStateListValueModelAdapter<Junk>(listHolder)); CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel); this.verifyHasListeners(listValueModel); assertEquals(this.bar, listValueModel.get(0)); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java index 2e38225a67..2a152d97b8 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java @@ -49,12 +49,13 @@ public class JptUtilityModelValueTests { suite.addTestSuite(PropertyListValueModelAdapterTests.class); suite.addTestSuite(ReadOnlyWritablePropertyValueModelWrapperTests.class); suite.addTestSuite(SetCollectionValueModelTests.class); - suite.addTestSuite(StaticCollectionValueModelTests.class); - suite.addTestSuite(StaticListValueModelTests.class); suite.addTestSuite(SimpleCollectionValueModelTests.class); suite.addTestSuite(SimpleListValueModelTests.class); suite.addTestSuite(SimplePropertyValueModelTests.class); suite.addTestSuite(SortedListValueModelAdapterTests.class); + suite.addTestSuite(SortedListValueModelWrapperTests.class); + suite.addTestSuite(StaticCollectionValueModelTests.class); + suite.addTestSuite(StaticListValueModelTests.class); suite.addTestSuite(StaticValueModelTests.class); suite.addTestSuite(TransformationListValueModelAdapterTests.class); suite.addTestSuite(TransformationListValueModelAdapterTests.TransformerTests.class); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java new file mode 100644 index 0000000000..63815b9b45 --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SortedListValueModelWrapperTests.java @@ -0,0 +1,237 @@ +/******************************************************************************* + * Copyright (c) 2009 Oracle. All rights reserved. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0, which accompanies this distribution + * and is available at http://www.eclipse.org/legal/epl-v10.html. + * + * Contributors: + * Oracle - initial API and implementation + ******************************************************************************/ +package org.eclipse.jpt.utility.tests.internal.model.value; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Comparator; +import java.util.List; +import java.util.TreeSet; + +import junit.framework.TestCase; + +import org.eclipse.jpt.utility.internal.CollectionTools; +import org.eclipse.jpt.utility.internal.ReverseComparator; +import org.eclipse.jpt.utility.internal.model.AbstractModel; +import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; +import org.eclipse.jpt.utility.model.event.ListAddEvent; +import org.eclipse.jpt.utility.model.event.ListChangeEvent; +import org.eclipse.jpt.utility.model.event.ListClearEvent; +import org.eclipse.jpt.utility.model.event.ListMoveEvent; +import org.eclipse.jpt.utility.model.event.ListRemoveEvent; +import org.eclipse.jpt.utility.model.event.ListReplaceEvent; +import org.eclipse.jpt.utility.model.listener.ChangeAdapter; +import org.eclipse.jpt.utility.model.listener.ChangeListener; +import org.eclipse.jpt.utility.model.listener.ListChangeListener; +import org.eclipse.jpt.utility.model.value.ListValueModel; +import org.eclipse.jpt.utility.tests.internal.TestTools; + +@SuppressWarnings("nls") +public class SortedListValueModelWrapperTests extends TestCase { + private List<String> list; + private SimpleListValueModel<String> listModel; + private SortedListValueModelWrapper<String> sortedListModel; + + + public SortedListValueModelWrapperTests(String name) { + super(name); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + this.list = new ArrayList<String>(); + this.listModel = new SimpleListValueModel<String>(this.list); + this.sortedListModel = new SortedListValueModelWrapper<String>(this.listModel); + } + + @Override + protected void tearDown() throws Exception { + TestTools.clear(this); + super.tearDown(); + } + + private void verifyList(Collection<String> expected, ListValueModel<String> actual) { + this.verifyList(expected, actual, null); + } + + private void verifyList(Collection<String> expected, ListValueModel<String> actual, Comparator<String> comparator) { + Collection<String> sortedSet = new TreeSet<String>(comparator); + sortedSet.addAll(expected); + List<String> expectedList = new ArrayList<String>(sortedSet); + List<String> actualList = CollectionTools.list(actual); + assertEquals(expectedList, actualList); + } + + public void testAdd() { + this.sortedListModel.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { + @Override + public void itemsAdded(ListAddEvent e) {/* OK */} + @Override + public void itemsReplaced(ListReplaceEvent e) {/* OK */} + }); + this.listModel.add("foo"); + this.listModel.add("bar"); + this.listModel.add("baz"); + assertEquals(3, this.sortedListModel.size()); + this.verifyList(this.list, this.sortedListModel); + } + + public void testAddItem() { + List<String> sortedSynchList = new CoordinatedList<String>(this.sortedListModel); + List<String> synchList = new CoordinatedList<String>(this.listModel); + this.listModel.add("foo"); + assertTrue(this.list.contains("foo")); + this.listModel.add("bar"); + this.listModel.add("baz"); + this.listModel.add("joo"); + this.listModel.add("jar"); + this.listModel.add("jaz"); + assertEquals(6, this.list.size()); + + this.verifyList(this.list, this.sortedListModel); + assertEquals(this.list, synchList); + assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); + } + + public void testRemoveItem() { + List<String> sortedSynchList = new CoordinatedList<String>(this.sortedListModel); + List<String> synchList = new CoordinatedList<String>(this.listModel); + this.listModel.add("foo"); + this.listModel.add("bar"); + this.listModel.add("baz"); + this.listModel.add("joo"); + this.listModel.add("jar"); + this.listModel.add("jaz"); + this.listModel.remove("jaz"); + assertFalse(this.list.contains("jaz")); + this.listModel.remove("foo"); + assertFalse(this.list.contains("foo")); + assertEquals(4, this.list.size()); + + this.verifyList(this.list, this.sortedListModel); + assertEquals(this.list, synchList); + assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); + } + + public void testReplaceItem() { + List<String> sortedSynchList = new CoordinatedList<String>(this.sortedListModel); + List<String> synchList = new CoordinatedList<String>(this.listModel); + this.listModel.add("foo"); + assertTrue(this.list.contains("foo")); + this.listModel.add("bar"); + this.listModel.add("baz"); + this.listModel.add("joo"); + this.listModel.add("jar"); + this.listModel.add("jaz"); + assertEquals(6, this.list.size()); + this.listModel.set(3, "ttt"); + this.listModel.set(4, "xxx"); + assertTrue(this.list.contains("xxx")); + + this.verifyList(this.list, this.sortedListModel); + assertEquals(this.list, synchList); + assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); + } + + public void testListSynch() { + this.sortedListModel.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { + @Override + public void itemsAdded(ListAddEvent e) {/* OK */} + @Override + public void itemsRemoved(ListRemoveEvent e) {/* OK */} + @Override + public void itemsReplaced(ListReplaceEvent e) {/* OK */} + }); + this.listModel.add("foo"); + this.listModel.add("bar"); + this.listModel.add("baz"); + this.listModel.add("joo"); + this.listModel.add("jar"); + this.listModel.add("jaz"); + this.listModel.remove("jaz"); + assertFalse(this.list.contains("jaz")); + this.listModel.remove("foo"); + assertFalse(this.list.contains("foo")); + assertEquals(4, this.list.size()); + + this.verifyList(this.list, this.sortedListModel); + } + + public void testSetComparator() { + List<String> sortedSynchList = new CoordinatedList<String>(this.sortedListModel); + List<String> synchList = new CoordinatedList<String>(this.listModel); + this.listModel.add("foo"); + assertTrue(this.list.contains("foo")); + this.listModel.add("bar"); + this.listModel.add("baz"); + this.listModel.add("joo"); + this.listModel.add("jar"); + this.listModel.add("jaz"); + assertEquals(6, this.list.size()); + + this.verifyList(this.list, this.sortedListModel); + assertEquals(this.list, synchList); + assertEquals(CollectionTools.list(this.sortedListModel), sortedSynchList); + + this.sortedListModel.setComparator(new ReverseComparator<String>()); + this.verifyList(this.list, this.sortedListModel, new ReverseComparator<String>()); + assertEquals(this.list, synchList); + } + + public void testHasListeners() { + assertFalse(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); + CoordinatedList<String> sortedSynchList = new CoordinatedList<String>(this.sortedListModel); + assertTrue(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); + this.sortedListModel.removeListChangeListener(ListValueModel.LIST_VALUES, sortedSynchList); + assertFalse(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); + + ChangeListener cl = new ChangeAdapter(); + this.sortedListModel.addChangeListener(cl); + assertTrue(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); + this.sortedListModel.removeChangeListener(cl); + assertFalse(((AbstractModel) this.sortedListModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES)); + } + + public void testListChange() { + this.listModel.add("fred"); + this.sortedListModel.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() { + @Override + public void listChanged(ListChangeEvent e) {/* OK */} + }); + this.listModel.setListValues(Arrays.asList(new String[] {"foo", "bar", "baz"})); + assertEquals(3, this.sortedListModel.size()); + this.verifyList(this.list, this.sortedListModel); + } + + class TestListChangeListener implements ListChangeListener { + public void itemsAdded(ListAddEvent e) { + fail("unexpected event"); + } + public void itemsRemoved(ListRemoveEvent e) { + fail("unexpected event"); + } + public void itemsReplaced(ListReplaceEvent e) { + fail("unexpected event"); + } + public void itemsMoved(ListMoveEvent e) { + fail("unexpected event"); + } + public void listCleared(ListClearEvent e) { + fail("unexpected event"); + } + public void listChanged(ListChangeEvent e) { + fail("unexpected event"); + } + } + +} diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java index 4cb2e0461b..6765325f00 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java @@ -16,20 +16,25 @@ import java.util.Iterator; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; + import javax.swing.ListModel; + import junit.framework.TestCase; + import org.eclipse.jpt.utility.internal.Bag; import org.eclipse.jpt.utility.internal.ClassTools; import org.eclipse.jpt.utility.internal.HashBag; import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel; import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter; import org.eclipse.jpt.utility.model.listener.ListChangeListener; import org.eclipse.jpt.utility.model.value.CollectionValueModel; import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.tests.internal.model.value.CoordinatedList; +@SuppressWarnings("nls") public class ListModelAdapterTests extends TestCase { public ListModelAdapterTests(String name) { @@ -186,7 +191,7 @@ public class ListModelAdapterTests extends TestCase { private void verifyListSort(Comparator<String> comparator) { SimpleListValueModel<String> listHolder = this.buildListHolder(); - ListModel listModel = this.buildListModel(new SortedListValueModelAdapter<String>(listHolder, comparator)); + ListModel listModel = this.buildListModel(new SortedListValueModelWrapper<String>(listHolder, comparator)); CoordinatedList<String> synchList = new CoordinatedList<String>(listModel); assertEquals(6, synchList.size()); this.compareSort(listModel, synchList, comparator); @@ -250,7 +255,7 @@ public class ListModelAdapterTests extends TestCase { public void testGetElementAt() throws Exception { SimpleListValueModel<String> listHolder = this.buildListHolder(); - ListModel listModel = this.buildListModel(new SortedListValueModelAdapter<String>(listHolder)); + ListModel listModel = this.buildListModel(new SortedListValueModelWrapper<String>(listHolder)); CoordinatedList<String> synchList = new CoordinatedList<String>(listModel); this.verifyHasListeners(listModel); assertEquals("bar", listModel.getElementAt(0)); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java index 941d5f1aa7..168ee487f5 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java @@ -22,6 +22,7 @@ import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.ListIterator; + import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.Icon; @@ -33,11 +34,12 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ListModel; import javax.swing.WindowConstants; + import org.eclipse.jpt.utility.internal.StringTools; import org.eclipse.jpt.utility.internal.model.AbstractModel; import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter; import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter; import org.eclipse.jpt.utility.internal.swing.Displayable; import org.eclipse.jpt.utility.model.value.ListValueModel; @@ -143,11 +145,11 @@ public class ListModelAdapterUITest { } private ListModel buildStandardSortedPrimitiveListModel() { - return new ListModelAdapter(new SortedListValueModelAdapter<String>(this.buildPrimitiveTaskListAdapter())); + return new ListModelAdapter(new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter())); } private ListModel buildCustomSortedPrimitiveListModel() { - return new ListModelAdapter(new SortedListValueModelAdapter<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator())); + return new ListModelAdapter(new SortedListValueModelWrapper<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator())); } private ListModel buildUnsortedDisplayableListModel() { @@ -155,11 +157,11 @@ public class ListModelAdapterUITest { } private ListModel buildStandardSortedDisplayableListModel() { - return new ListModelAdapter(new SortedListValueModelAdapter<Task>(this.buildDisplayableTaskListAdapter())); + return new ListModelAdapter(new SortedListValueModelWrapper<Task>(this.buildDisplayableTaskListAdapter())); } private ListModel buildCustomSortedDisplayableListModel() { - return new ListModelAdapter(new SortedListValueModelAdapter<Task>(this.buildDisplayableTaskListAdapter(), this.buildCustomTaskObjectComparator())); + return new ListModelAdapter(new SortedListValueModelWrapper<Task>(this.buildDisplayableTaskListAdapter(), this.buildCustomTaskObjectComparator())); } private Component buildListPanel(String label, ListModel listModel) { diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java index ebe3d1a66b..6b70b279ca 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java @@ -19,6 +19,7 @@ import java.awt.event.WindowListener; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; + import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ButtonModel; @@ -45,6 +46,7 @@ import javax.swing.event.ListSelectionListener; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import javax.swing.text.Document; + import org.eclipse.jpt.utility.internal.ClassTools; import org.eclipse.jpt.utility.internal.CollectionTools; import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter; @@ -52,7 +54,7 @@ import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAd import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel; import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.model.value.swing.CheckBoxModelAdapter; import org.eclipse.jpt.utility.internal.model.value.swing.ColumnAdapter; import org.eclipse.jpt.utility.internal.model.value.swing.ComboBoxModelAdapter; @@ -86,6 +88,7 @@ import org.eclipse.jpt.utility.tests.internal.model.value.swing.TableModelAdapte * Note that the table model and row selection model share the same * list value model (the sorted people adapter) */ +@SuppressWarnings("nls") public class TableModelAdapterUITest { private SimpleCollectionValueModel<Object> eyeColorsHolder; // Object because it adapts to a combo-box private WritablePropertyValueModel<Crowd> crowdHolder; @@ -104,7 +107,7 @@ public class TableModelAdapterUITest { super(); } - protected void exec(String[] args) throws Exception { + protected void exec(@SuppressWarnings("unused") String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); this.eyeColorsHolder = this. buildEyeColorCollectionHolder(); this.crowdHolder = this.buildCrowdHolder(); @@ -155,7 +158,7 @@ public class TableModelAdapterUITest { } private ListValueModel<Person> buildSortedPeopleAdapter() { - return new SortedListValueModelAdapter<Person>(this.buildPeopleNameAdapter()); + return new SortedListValueModelWrapper<Person>(this.buildPeopleNameAdapter()); } // the list will need to be re-sorted if a name changes @@ -202,7 +205,7 @@ public class TableModelAdapterUITest { }; } - void rowSelectionChanged(ListSelectionEvent e) { + void rowSelectionChanged(@SuppressWarnings("unused") ListSelectionEvent event) { Person selection = (Person) this.rowSelectionModel.selectedValue(); this.selectedPersonHolder.setValue(selection); boolean personSelected = (selection != null); diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java index 58f9607ce3..257096ce20 100644 --- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java @@ -15,12 +15,15 @@ import java.io.StringWriter; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; + import javax.swing.Icon; import javax.swing.JTree; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; + import junit.framework.TestCase; + import org.eclipse.jpt.utility.internal.HashBag; import org.eclipse.jpt.utility.internal.IndentingPrintWriter; import org.eclipse.jpt.utility.internal.StringTools; @@ -33,7 +36,7 @@ import org.eclipse.jpt.utility.internal.model.value.NullListValueModel; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel; import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter; +import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelWrapper; import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel; import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter; import org.eclipse.jpt.utility.internal.model.value.swing.TreeModelAdapter; @@ -606,7 +609,7 @@ public class TreeModelAdapterTests extends TestCase { /** the list should be sorted */ @Override protected ListValueModel<TreeNodeValueModel<Object>> buildChildrenModel(TestModel testModel) { - return new SortedListValueModelAdapter<TreeNodeValueModel<Object>>(this.buildDisplayStringAdapter(testModel)); + return new SortedListValueModelWrapper<TreeNodeValueModel<Object>>(this.buildDisplayStringAdapter(testModel)); } /** the display string (name) of each node can change */ protected ListValueModel<TreeNodeValueModel<Object>> buildDisplayStringAdapter(TestModel testModel) { |