blob: 0d2f73e61d6b8bd79145cd7ed9d242a0cb8ee432 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 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.swing;
import javax.swing.DefaultListModel;
import javax.swing.ListModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import junit.framework.TestCase;
import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
import org.eclipse.jpt.utility.tests.internal.TestTools;
@SuppressWarnings("nls")
public class ObjectListSelectionModelTests extends TestCase {
private DefaultListModel listModel;
private ObjectListSelectionModel selectionModel;
public ObjectListSelectionModelTests(String name) {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
this.listModel = this.buildListModel();
this.selectionModel = this.buildSelectionModel(this.listModel);
}
private DefaultListModel buildListModel() {
DefaultListModel lm = new DefaultListModel();
lm.addElement("foo");
lm.addElement("bar");
lm.addElement("baz");
return lm;
}
private ObjectListSelectionModel buildSelectionModel(ListModel lm) {
return new ObjectListSelectionModel(lm);
}
@Override
protected void tearDown() throws Exception {
TestTools.clear(this);
super.tearDown();
}
public void testListDataListener() {
this.selectionModel.addListSelectionListener(this.buildListSelectionListener());
this.selectionModel.setSelectionInterval(0, 0);
assertEquals("foo", this.selectionModel.selectedValue());
this.listModel.set(0, "jar");
assertEquals("jar", this.selectionModel.selectedValue());
}
public void testGetSelectedValue() {
this.selectionModel.setSelectionInterval(0, 0);
assertEquals("foo", this.selectionModel.selectedValue());
}
public void testGetSelectedValues() {
this.selectionModel.setSelectionInterval(0, 0);
this.selectionModel.addSelectionInterval(2, 2);
assertEquals(2, this.selectionModel.selectedValues().length);
assertTrue(ArrayTools.contains(this.selectionModel.selectedValues(), "foo"));
assertTrue(ArrayTools.contains(this.selectionModel.selectedValues(), "baz"));
}
public void testSetSelectedValue() {
this.selectionModel.setSelectedValue("foo");
assertEquals(0, this.selectionModel.getMinSelectionIndex());
assertEquals(0, this.selectionModel.getMaxSelectionIndex());
}
public void testSetSelectedValues() {
this.selectionModel.setSelectedValues(new Object[] {"foo", "baz"});
assertEquals(0, this.selectionModel.getMinSelectionIndex());
assertEquals(2, this.selectionModel.getMaxSelectionIndex());
}
public void testAddSelectedValue() {
this.listModel.addElement("joo");
this.listModel.addElement("jar");
this.listModel.addElement("jaz");
this.selectionModel.setSelectedValue("foo");
this.selectionModel.addSelectedValue("jaz");
assertEquals(0, this.selectionModel.getMinSelectionIndex());
assertEquals(5, this.selectionModel.getMaxSelectionIndex());
assertTrue(this.selectionModel.isSelectedIndex(0));
assertFalse(this.selectionModel.isSelectedIndex(1));
assertFalse(this.selectionModel.isSelectedIndex(2));
assertFalse(this.selectionModel.isSelectedIndex(3));
assertFalse(this.selectionModel.isSelectedIndex(4));
assertTrue(this.selectionModel.isSelectedIndex(5));
}
public void testAddSelectedValues() {
this.listModel.addElement("joo");
this.listModel.addElement("jar");
this.listModel.addElement("jaz");
this.selectionModel.setSelectedValue("foo");
this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"});
assertEquals(0, this.selectionModel.getMinSelectionIndex());
assertEquals(4, this.selectionModel.getMaxSelectionIndex());
assertTrue(this.selectionModel.isSelectedIndex(0));
assertTrue(this.selectionModel.isSelectedIndex(1));
assertFalse(this.selectionModel.isSelectedIndex(2));
assertFalse(this.selectionModel.isSelectedIndex(3));
assertTrue(this.selectionModel.isSelectedIndex(4));
assertFalse(this.selectionModel.isSelectedIndex(5));
}
public void testRemoveSelectedValue() {
this.listModel.addElement("joo");
this.listModel.addElement("jar");
this.listModel.addElement("jaz");
this.selectionModel.setSelectedValues(new Object[] {"foo", "baz", "jar"});
this.selectionModel.removeSelectedValue("jar");
assertEquals(0, this.selectionModel.getMinSelectionIndex());
assertEquals(2, this.selectionModel.getMaxSelectionIndex());
assertTrue(this.selectionModel.isSelectedIndex(0));
assertFalse(this.selectionModel.isSelectedIndex(1));
assertTrue(this.selectionModel.isSelectedIndex(2));
assertFalse(this.selectionModel.isSelectedIndex(3));
assertFalse(this.selectionModel.isSelectedIndex(4));
assertFalse(this.selectionModel.isSelectedIndex(5));
}
public void testRemoveSelectedValues() {
this.listModel.addElement("joo");
this.listModel.addElement("jar");
this.listModel.addElement("jaz");
this.selectionModel.setSelectedValues(new Object[] {"foo", "baz", "joo", "jar"});
this.selectionModel.removeSelectedValues(new Object[] {"foo", "joo"});
assertEquals(2, this.selectionModel.getMinSelectionIndex());
assertEquals(4, this.selectionModel.getMaxSelectionIndex());
assertFalse(this.selectionModel.isSelectedIndex(0));
assertFalse(this.selectionModel.isSelectedIndex(1));
assertTrue(this.selectionModel.isSelectedIndex(2));
assertFalse(this.selectionModel.isSelectedIndex(3));
assertTrue(this.selectionModel.isSelectedIndex(4));
assertFalse(this.selectionModel.isSelectedIndex(5));
}
public void testGetAnchorSelectedValue() {
this.selectionModel.setAnchorSelectionIndex(1);
assertEquals("bar", this.selectionModel.getAnchorSelectedValue());
}
public void testGetLeadSelectedValue() {
this.selectionModel.setSelectedValue("bar");
assertEquals("bar", this.selectionModel.getLeadSelectedValue());
this.selectionModel.setSelectedValues(new Object[] {"foo", "baz"});
assertEquals("baz", this.selectionModel.getLeadSelectedValue());
}
public void testGetMinMaxSelectedValue() {
this.listModel.addElement("joo");
this.listModel.addElement("jar");
this.listModel.addElement("jaz");
this.selectionModel.setSelectedValue("foo");
this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"});
assertEquals("foo", this.selectionModel.getMinSelectedValue());
assertEquals("jar", this.selectionModel.getMaxSelectedValue());
}
public void testValueIsSelected() {
this.listModel.addElement("joo");
this.listModel.addElement("jar");
this.listModel.addElement("jaz");
this.selectionModel.setSelectedValue("foo");
this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"});
assertTrue(this.selectionModel.valueIsSelected("foo"));
assertTrue(this.selectionModel.valueIsSelected("bar"));
assertTrue(this.selectionModel.valueIsSelected("jar"));
assertFalse(this.selectionModel.valueIsSelected("baz"));
}
public void testHasListeners() throws Exception {
ListSelectionListener listener = this.buildListSelectionListener();
assertEquals(0, this.listModel.getListDataListeners().length);
this.selectionModel.addListSelectionListener(listener);
assertEquals(1, this.listModel.getListDataListeners().length);
this.selectionModel.removeListSelectionListener(listener);
assertEquals(0, this.listModel.getListDataListeners().length);
}
private ListSelectionListener buildListSelectionListener() {
return new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
// do nothing for now...
}
};
}
}