Package javax.swing.table

Source Code of javax.swing.table.DefaultTableCellRendererTest

/*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
/**
* @author Anton Avtamonov
*/
package javax.swing.table;

import java.awt.Color;
import java.awt.Insets;
import javax.swing.BasicSwingTestCase;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.LabelUI;

public class DefaultTableCellRendererTest extends BasicSwingTestCase {
    private DefaultTableCellRenderer renderer;

    public DefaultTableCellRendererTest(final String name) {
        super(name);
    }

    @Override
    protected void setUp() throws Exception {
        renderer = new DefaultTableCellRenderer();
    }

    @Override
    protected void tearDown() throws Exception {
        renderer = null;
    }

    public void testDefaultTableCellRenderer() throws Exception {
        assertTrue(DefaultTableCellRenderer.noFocusBorder instanceof EmptyBorder);
        assertEquals(new Insets(1, 1, 1, 1), DefaultTableCellRenderer.noFocusBorder
                .getBorderInsets(null));
    }

    public void testSetForegroundBackground() throws Exception {
        PropertyChangeController controller = new PropertyChangeController();
        renderer.addPropertyChangeListener(controller);
        renderer.setForeground(Color.RED);
        assertEquals(Color.RED, renderer.getForeground());
        assertFalse(controller.isChanged());
        renderer.setBackground(Color.GREEN);
        assertEquals(Color.GREEN, renderer.getBackground());
        assertFalse(controller.isChanged());
        renderer.setBackground(null);
        renderer.setForeground(null);
        assertNull(renderer.getForeground());
        assertNull(renderer.getBackground());
        JTable table = new JTable();
        table.setBackground(Color.BLUE);
        table.setForeground(Color.RED);
        table.setSelectionBackground(Color.MAGENTA);
        table.setSelectionForeground(Color.CYAN);
        assertNull(renderer.getForeground());
        assertNull(renderer.getBackground());
        assertSame(renderer, renderer.getTableCellRendererComponent(table, null, false, false,
                0, 0));
        assertEquals(table.getBackground(), renderer.getBackground());
        assertEquals(table.getForeground(), renderer.getForeground());
        renderer.setForeground(Color.GRAY);
        renderer.setBackground(Color.YELLOW);
        renderer.getTableCellRendererComponent(table, null, false, false, 0, 0);
        if (isHarmony()) {
            assertEquals(table.getBackground(), renderer.getBackground());
            assertEquals(table.getForeground(), renderer.getForeground());
        } else {
            assertEquals(Color.YELLOW, renderer.getBackground());
            assertEquals(Color.GRAY, renderer.getForeground());
        }
        renderer.getTableCellRendererComponent(table, null, true, false, 0, 0);
        assertEquals(table.getSelectionBackground(), renderer.getBackground());
        assertEquals(table.getSelectionForeground(), renderer.getForeground());
    }

    public void testUpdateUI() throws Exception {
        ComponentUI ui = renderer.getUI();
        assertTrue(ui instanceof LabelUI);
        renderer.updateUI();
        assertSame(ui, renderer.getUI());
    }

    public void testGetTableCellRendererComponent() throws Exception {
        JTable table = new JTable();
        table.setBackground(Color.BLUE);
        table.setForeground(Color.RED);
        table.setSelectionBackground(Color.MAGENTA);
        table.setSelectionForeground(Color.CYAN);
        assertSame(renderer, renderer.getTableCellRendererComponent(table, null, false, false,
                0, 0));
        assertEquals("", renderer.getText());
        assertSame(DefaultTableCellRenderer.noFocusBorder, renderer.getBorder());
        assertEquals(table.getBackground(), renderer.getBackground());
        assertEquals(table.getForeground(), renderer.getForeground());
        assertEquals(table.getFont(), renderer.getFont());
        assertSame(renderer, renderer.getTableCellRendererComponent(table, "any value", false,
                true, -1, -1));
        assertEquals("any value", renderer.getText());
        assertSame(UIManager.getBorder("Table.focusCellHighlightBorder"), renderer.getBorder());
        assertEquals(UIManager.getColor("Table.focusCellBackground"), renderer.getBackground());
        assertEquals(UIManager.getColor("Table.focusCellForeground"), renderer.getForeground());
        assertEquals(table.getFont(), renderer.getFont());
        assertSame(renderer, renderer.getTableCellRendererComponent(table, "any value", true,
                false, 0, 0));
        assertEquals("any value", renderer.getText());
        assertSame(DefaultTableCellRenderer.noFocusBorder, renderer.getBorder());
        assertEquals(table.getSelectionBackground(), renderer.getBackground());
        assertEquals(table.getSelectionForeground(), renderer.getForeground());
        assertEquals(table.getFont(), renderer.getFont());
        assertSame(renderer, renderer.getTableCellRendererComponent(table, "any value", true,
                true, -1, -1));
        assertEquals("any value", renderer.getText());
        assertSame(UIManager.getBorder("Table.focusCellHighlightBorder"), renderer.getBorder());
        assertEquals(table.getSelectionBackground(), renderer.getBackground());
        assertEquals(table.getSelectionForeground(), renderer.getForeground());
        assertEquals(table.getFont(), renderer.getFont());
        table.addColumn(new TableColumn());
        assertSame(renderer, renderer.getTableCellRendererComponent(table, "any value", true,
                true, 0, 0));
        assertEquals("any value", renderer.getText());
        assertSame(UIManager.getBorder("Table.focusCellHighlightBorder"), renderer.getBorder());
        assertEquals(table.getSelectionBackground(), renderer.getBackground());
        assertEquals(table.getSelectionForeground(), renderer.getForeground());
        assertEquals(table.getFont(), renderer.getFont());
        table.setModel(new DefaultTableModel() {
            private static final long serialVersionUID = 1L;

            @Override
            public boolean isCellEditable(final int row, final int column) {
                return false;
            }
        });
        table.addColumn(new TableColumn());
        assertSame(renderer, renderer.getTableCellRendererComponent(table, "any value", true,
                true, 0, 0));
        assertEquals("any value", renderer.getText());
        assertSame(UIManager.getBorder("Table.focusCellHighlightBorder"), renderer.getBorder());
        assertEquals(table.getSelectionBackground(), renderer.getBackground());
        assertEquals(table.getSelectionForeground(), renderer.getForeground());
        assertEquals(table.getFont(), renderer.getFont());

        // regression test for HARMONY-1721
        DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
        Color c = renderer.getBackground();
        assertNull(c);
    }

    public void testIsOpaque() throws Exception {
        assertTrue(renderer.isOpaque());
    }

    public void testFirePropertyChange() throws Exception {
        PropertyChangeController controller = new PropertyChangeController();
        renderer.addPropertyChangeListener(controller);
        renderer.firePropertyChange("any", "a", "b");
        assertFalse(controller.isChanged());
        renderer.firePropertyChange("any", true, false);
        assertFalse(controller.isChanged());
    }

    public void testSetText() throws Exception {
        assertEquals("", renderer.getText());
        renderer.setValue(null);
        assertEquals("", renderer.getText());
        renderer.setValue("any");
        assertEquals("any", renderer.getText());
        renderer.setValue(new Integer("4"));
        assertEquals("4", renderer.getText());
    }

    public void testGetName() {
        DefaultTableCellRenderer cr = new DefaultTableCellRenderer();
        assertNull(cr.getName());
    }
}
TOP

Related Classes of javax.swing.table.DefaultTableCellRendererTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.