/* * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* @test * @bug 7031551 * @summary Generics: JComboBox * @author Pavel Porvatov */ import javax.swing.*; import java.util.Vector; public class bug7031551 { private static final String TEST_ELEMENT1 = "Test1"; private static final String TEST_ELEMENT2 = "Test2"; private static final String TEST_ELEMENT3 = "Test3"; /** * @param args the command line arguments */ @SuppressWarnings("unchecked") public static void main(String[] args) { testRawSignatures(); testGenericSignatures(); } @SuppressWarnings("unchecked") private static void testRawSignatures() { // Test JComboBox ComboBoxModel rawTestModel = new DefaultComboBoxModel(); JComboBox rawTestComboBox = new JComboBox(); rawTestComboBox = new JComboBox(rawTestModel); rawTestComboBox = new JComboBox(new Object[]{TEST_ELEMENT1}); rawTestComboBox = new JComboBox(new Vector()); Object unused1 = rawTestComboBox.getPrototypeDisplayValue(); rawTestComboBox.setPrototypeDisplayValue(TEST_ELEMENT1); ListCellRenderer unused2 = rawTestComboBox.getRenderer(); rawTestComboBox.setRenderer(new DefaultListCellRenderer()); ComboBoxModel unused3 = rawTestComboBox.getModel(); rawTestComboBox.setModel(rawTestModel); rawTestComboBox.addItem(TEST_ELEMENT2); rawTestComboBox.insertItemAt(TEST_ELEMENT3, 1); rawTestComboBox.removeItem(TEST_ELEMENT2); assertEquals(rawTestComboBox.getItemAt(0), TEST_ELEMENT3); rawTestComboBox.removeAllItems(); // Test DefaultComboBoxModel DefaultComboBoxModel testModel = new DefaultComboBoxModel(); testModel = new DefaultComboBoxModel(new Vector()); testModel = new DefaultComboBoxModel(new Object[]{TEST_ELEMENT1}); testModel.addElement(TEST_ELEMENT2); testModel.insertElementAt(TEST_ELEMENT3, 1); assertEquals(testModel.getElementAt(2), TEST_ELEMENT2); } private static void testGenericSignatures() { // Test JComboBox ComboBoxModel<String> stringTestModel = new DefaultComboBoxModel<String>(); JComboBox<String> stringTestComboBox = new JComboBox<String>(); stringTestComboBox = new JComboBox<String>(stringTestModel); stringTestComboBox = new JComboBox<String>(new String[]{TEST_ELEMENT1}); stringTestComboBox = new JComboBox<String>(new Vector<String>()); String unused1 = stringTestComboBox.getPrototypeDisplayValue(); stringTestComboBox.setPrototypeDisplayValue(TEST_ELEMENT1); ListCellRenderer<? super String> unused2 = stringTestComboBox.getRenderer(); stringTestComboBox.setRenderer(new DefaultListCellRenderer()); ComboBoxModel unused3 = stringTestComboBox.getModel(); stringTestComboBox.setModel(stringTestModel); stringTestComboBox.addItem(TEST_ELEMENT2); stringTestComboBox.insertItemAt(TEST_ELEMENT3, 1); stringTestComboBox.removeItem(TEST_ELEMENT2); assertEquals(stringTestComboBox.getItemAt(0), TEST_ELEMENT3); stringTestComboBox.removeAllItems(); // Test DefaultComboBoxModel DefaultComboBoxModel<String> testModel = new DefaultComboBoxModel<String>(); testModel = new DefaultComboBoxModel<String>(new Vector<String>()); testModel = new DefaultComboBoxModel<String>(new String[]{TEST_ELEMENT1}); testModel.addElement(TEST_ELEMENT2); testModel.insertElementAt(TEST_ELEMENT3, 1); assertEquals(testModel.getElementAt(2), TEST_ELEMENT2); } private static void assertEquals(Object expectedObject, Object actualObject) { if (!expectedObject.equals(actualObject)) { throw new RuntimeException("Expected: " + expectedObject + " but was: " + actualObject); } } }