Path: blob/master/test/jdk/javax/swing/JList/6823603/bug6823603.java
41153 views
/*1* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/* @test24@bug 682360325@summary Generics: JList26@author Florian Brunner27@run main bug682360328*/2930import java.util.Arrays;31import java.util.List;32import java.util.Vector;33import java.util.Enumeration;34import java.awt.*;35import javax.swing.*;3637public class bug6823603 {3839private static final String TEST_ELEMENT = "Test1";4041/**42* @param args the command line arguments43*/44@SuppressWarnings("unchecked")45public static void main(String[] args) {46testRawSignatures();47testGenericSignatures();4849testGetSelectedValuesList(); // new method50}5152@SuppressWarnings("unchecked")53private static void testRawSignatures() {54// Test JList55ListModel rawTestModel = new DefaultListModel();5657new JList();58new JList(rawTestModel);59new JList(new Object[]{TEST_ELEMENT});60JList rawTestList = new JList(new Vector());61rawTestList.getPrototypeCellValue();62rawTestList.setPrototypeCellValue(TEST_ELEMENT);63rawTestList.getCellRenderer();64rawTestList.setCellRenderer(new DefaultListCellRenderer());65rawTestList.getModel();66rawTestList.setModel(rawTestModel);67rawTestList.setListData(new Object[]{TEST_ELEMENT});68rawTestList.setListData(new Vector());6970@SuppressWarnings("deprecation")71Object[] selectedValues = rawTestList.getSelectedValues();72rawTestList.getSelectedValue();7374// Test ListCellRenderer75ListCellRenderer rawTestCellRenderer = new DefaultListCellRenderer();76String testEntry = "Test";77@SuppressWarnings("unchecked")78JList rawJList = new JList(new Object[]{testEntry});7980rawTestCellRenderer.getListCellRendererComponent(rawJList,81testEntry, 0, true, true);8283// Test ListModel84DefaultListModel testModel = new DefaultListModel();85testModel.addElement(TEST_ELEMENT);86rawTestModel = testModel;87rawTestModel.getElementAt(0);8889// Test DefaultListModel90DefaultListModel defaultListModel = new DefaultListModel();9192defaultListModel.addElement(TEST_ELEMENT);93defaultListModel.getElementAt(0);94defaultListModel.elements();95defaultListModel.elementAt(0);96defaultListModel.firstElement();97defaultListModel.lastElement();9899String testElement2 = "Test2";100101defaultListModel.setElementAt(testElement2, 0);102defaultListModel.insertElementAt(TEST_ELEMENT, 0);103defaultListModel.get(0);104defaultListModel.set(0, testElement2);105defaultListModel.add(0, TEST_ELEMENT);106defaultListModel.remove(0);107108// Test AbstractListModel109@SuppressWarnings("serial")110ListModel abstractListModel = new AbstractListModel() {111public int getSize() {112throw new UnsupportedOperationException("Not supported yet.");113}114115public Object getElementAt(int index) {116throw new UnsupportedOperationException("Not supported yet.");117}118};119120// Test DefaultListCellRenderer121DefaultListCellRenderer cellRenderer = new DefaultListCellRenderer();122123@SuppressWarnings("unchecked")124JList list = new JList(new Object[]{testEntry});125126cellRenderer.getListCellRendererComponent(rawJList, testEntry, 0, true, true);127}128129private static <E> void testGenericSignatures() {130// Test JList131ListModel<String> stringListModel = new DefaultListModel<String>();132133new JList<String>();134new JList<String>(stringListModel);135new JList<String>(new String[]{TEST_ELEMENT});136137JList<String> stringTestList = new JList<String>(new Vector<String>());138139stringTestList.getPrototypeCellValue();140stringTestList.setPrototypeCellValue(TEST_ELEMENT);141142ListCellRenderer<? super String> cellRenderer = stringTestList.getCellRenderer();143144stringTestList.setCellRenderer(new DefaultListCellRenderer());145146ListModel<String> model = stringTestList.getModel();147148stringTestList.setModel(stringListModel);149stringTestList.setListData(new String[]{TEST_ELEMENT});150stringTestList.setListData(new Vector<String>());151152@SuppressWarnings("deprecation")153Object[] selectedValues = stringTestList.getSelectedValues();154155stringTestList.getSelectedValue();156157// Test ListCellRenderer158ListCellRenderer<Object> stringTestCellRenderer =159new DefaultListCellRenderer();160String testEntry = "Test";161JList<String> stringJList = new JList<String>(new String[]{testEntry});162163Component listCellRendererComponent2 =164stringTestCellRenderer.getListCellRendererComponent(stringJList,165testEntry, 0, true, true);166167// Test ListModel168DefaultListModel<String> testModel = new DefaultListModel<String>();169testModel.addElement(TEST_ELEMENT);170stringListModel = testModel;171172String element1 = stringListModel.getElementAt(0);173174// Test DefaultListModel175DefaultListModel<String> stringTestModel = new DefaultListModel<String>();176177stringTestModel.addElement(TEST_ELEMENT);178element1 = stringTestModel.getElementAt(0);179Enumeration<String> elements = stringTestModel.elements();180String element2 = stringTestModel.elementAt(0);181String firstElement = stringTestModel.firstElement();182String lastElement = stringTestModel.lastElement();183184String testElement2 = "Test2";185stringTestModel.setElementAt(testElement2, 0);186stringTestModel.insertElementAt(TEST_ELEMENT, 0);187String element3 = stringTestModel.get(0);188String element4 = stringTestModel.set(0, testElement2);189stringTestModel.add(0, TEST_ELEMENT);190String removedElement = stringTestModel.remove(0);191192// Test AbstractListModel193stringListModel = new AbstractListModel<String>() {194195public int getSize() {196throw new UnsupportedOperationException("Not supported yet.");197}198199public String getElementAt(int index) {200throw new UnsupportedOperationException("Not supported yet.");201}202};203204@SuppressWarnings("serial")205ListModel<E> genericTestModel = new AbstractListModel<E>() {206207public int getSize() {208throw new UnsupportedOperationException("Not supported yet.");209}210211public E getElementAt(int index) {212throw new UnsupportedOperationException("Not supported yet.");213}214};215216// Test DefaultListCellRenderer217cellRenderer = new DefaultListCellRenderer();218219stringJList = new JList<String>(new String[]{testEntry});220221listCellRendererComponent2 = cellRenderer.getListCellRendererComponent(stringJList, testEntry, 0, true, true);222}223224private static void testGetSelectedValuesList() {225Vector<Integer> data = new Vector<Integer>();226for (int i = 0; i < 10; i++) {227data.add(i);228}229JList<Integer> list = new JList<Integer>(data);230list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);231list.setSelectedIndices(new int[]{1, 2, 3, 5, 6, 8});232233@SuppressWarnings("deprecation")234Object[] expectedSelectedValues = list.getSelectedValues();235List<Integer> selectedValuesList = list.getSelectedValuesList();236assertEquals(expectedSelectedValues, selectedValuesList.toArray());237}238239private static void assertEquals(Object[] expectedArray,240Object[] actualArray) {241if (!Arrays.equals(expectedArray, actualArray)) {242throw new RuntimeException("Expected: " + Arrays.toString(243expectedArray) + " but was: " + Arrays.toString(actualArray));244}245}246}247248249