Package javax.swing.table

Source Code of javax.swing.table.JTableHeaderTest

/*
*  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.Point;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.util.Arrays;
import javax.swing.BasicSwingTestCase;
import javax.swing.JTable;
import javax.swing.plaf.TableHeaderUI;
import javax.swing.plaf.UIResource;
import javax.swing.plaf.basic.BasicTableHeaderUI;

public class JTableHeaderTest extends BasicSwingTestCase {
    private JTableHeader header;

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

    @Override
    protected void setUp() throws Exception {
        header = new JTableHeader();
        propertyChangeController = new PropertyChangeController();
        header.addPropertyChangeListener(propertyChangeController);
    }

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

    public void testJTableHeader() throws Exception {
        assertTrue(header.columnModel instanceof DefaultTableColumnModel);
        header = new JTableHeader(null);
        assertTrue(header.columnModel instanceof DefaultTableColumnModel);
        TableColumnModel cm = new DefaultTableColumnModel();
        header = new JTableHeader(cm);
        assertSame(cm, header.columnModel);
    }

    public void testGetSetTable() throws Exception {
        assertNull(header.table);
        assertNull(header.getTable());
        JTable table = new JTable();
        header.setTable(table);
        assertSame(table, header.getTable());
        assertTrue(propertyChangeController.isChanged("table"));
    }

    public void testGetSetReorderingAllowed() throws Exception {
        assertTrue(header.getReorderingAllowed());
        header.setReorderingAllowed(false);
        assertFalse(header.getReorderingAllowed());
        assertTrue(propertyChangeController.isChanged("reorderingAllowed"));
    }

    public void testGetSetResizingAllowed() throws Exception {
        assertTrue(header.getResizingAllowed());
        header.setResizingAllowed(false);
        assertFalse(header.getResizingAllowed());
        assertTrue(propertyChangeController.isChanged("resizingAllowed"));
    }

    public void testGetSetDraggedColumn() throws Exception {
        assertNull(header.getDraggedColumn());
        TableColumn column = new TableColumn();
        header.setDraggedColumn(column);
        assertEquals(column, header.getDraggedColumn());
        assertFalse(propertyChangeController.isChanged());
    }

    public void testGetSetDraggedDistance() throws Exception {
        assertEquals(0, header.getDraggedDistance());
        header.setDraggedDistance(10);
        assertEquals(10, header.getDraggedDistance());
        header.setDraggedDistance(-10);
        assertEquals(-10, header.getDraggedDistance());
        assertFalse(propertyChangeController.isChanged());
    }

    public void testGetSetResizingColumn() throws Exception {
        assertNull(header.getResizingColumn());
        TableColumn column = new TableColumn();
        header.setResizingColumn(column);
        assertEquals(column, header.getResizingColumn());
        assertFalse(propertyChangeController.isChanged());
    }

    public void testGetSetUpdateTableInRealTime() throws Exception {
        assertTrue(header.getUpdateTableInRealTime());
        header.setUpdateTableInRealTime(false);
        assertFalse(header.getUpdateTableInRealTime());
        assertFalse(propertyChangeController.isChanged());
    }

    public void testGetSetDefaultRenderer() throws Exception {
        assertTrue(header.getDefaultRenderer() instanceof DefaultTableCellRenderer);
        assertTrue(header.getDefaultRenderer() instanceof UIResource);
        TableCellRenderer renderer = new DefaultTableCellRenderer();
        header.setDefaultRenderer(renderer);
        assertSame(renderer, header.getDefaultRenderer());
        assertFalse(propertyChangeController.isChanged());
        header.setDefaultRenderer(null);
        assertNull(header.getDefaultRenderer());
    }

    public void testColumnAtPoint() throws Exception {
        assertEquals(-1, header.columnAtPoint(new Point(10, 10)));
        header.columnModel.addColumn(new TableColumn(0, 20));
        header.columnModel.addColumn(new TableColumn(0, 30));
        assertEquals(0, header.columnAtPoint(new Point(10, 1000)));
        assertEquals(0, header.columnAtPoint(new Point(19, 1000)));
        assertEquals(1, header.columnAtPoint(new Point(30, 1000)));
    }

    public void testGetHeaderRect() throws Exception {
        assertEquals(new Rectangle(), header.getHeaderRect(10));
        header.columnModel.addColumn(new TableColumn(0, 20));
        assertEquals(new Rectangle(0, 0, 20, 0), header.getHeaderRect(0));
        assertEquals(new Rectangle(), header.getHeaderRect(1));
        header.columnModel.addColumn(new TableColumn(0, 30));
        assertEquals(new Rectangle(0, 0, 20, 0), header.getHeaderRect(0));
        assertEquals(new Rectangle(20, 0, 30, 0), header.getHeaderRect(1));
        assertEquals(new Rectangle(), header.getHeaderRect(2));
        assertNotSame(header.getHeaderRect(2), header.getHeaderRect(2));
        header.setBounds(10, 10, 100, 30);
        assertEquals(new Rectangle(0, 0, 20, 30), header.getHeaderRect(0));
    }

    public void testGetToolTipText() throws Exception {
        assertNull(header.getToolTipText(new MouseEvent(header, 0, 0, 0, 0, 0, 0, false)));
        ((DefaultTableCellRenderer) header.getDefaultRenderer()).setToolTipText("tooltip");
        assertNull(header.getToolTipText(new MouseEvent(header, 0, 0, 0, 0, 0, 0, false)));
        header.columnModel.addColumn(new TableColumn(0, 20));
        assertEquals("tooltip", header.getToolTipText(new MouseEvent(header, 0, 0, 0, 0, 100,
                0, false)));
        assertNull(header.getToolTipText(new MouseEvent(header, 0, 0, 0, 25, 0, 0, false)));
        header.columnModel.addColumn(new TableColumn(0, 20));
        assertEquals("tooltip", header.getToolTipText(new MouseEvent(header, 0, 0, 0, 0, 100,
                0, false)));
        assertEquals("tooltip", header.getToolTipText(new MouseEvent(header, 0, 0, 0, 25, 100,
                0, false)));
        DefaultTableCellRenderer renderer = (DefaultTableCellRenderer) header.columnModel
                .getColumn(0).createDefaultHeaderRenderer();
        renderer.setToolTipText("column tooltip");
        header.columnModel.getColumn(0).setHeaderRenderer(renderer);
        assertEquals("column tooltip", header.getToolTipText(new MouseEvent(header, 0, 0, 0, 0,
                100, 0, false)));
        assertEquals("tooltip", header.getToolTipText(new MouseEvent(header, 0, 0, 0, 25, 100,
                0, false)));
    }

    public void testGetSetUpdateUI() throws Exception {
        assertNotNull(header.getUI());
        TableHeaderUI ui = new BasicTableHeaderUI();
        header.setUI(ui);
        assertSame(ui, header.getUI());
        header.updateUI();
        assertNotNull(header.getUI());
        assertNotSame(ui, header.getUI());
    }

    public void testGetSetColumnModel() throws Exception {
        assertTrue(header.getColumnModel() instanceof DefaultTableColumnModel);
        assertTrue(Arrays.asList(
                ((DefaultTableColumnModel) header.getColumnModel()).getColumnModelListeners())
                .contains(header));
        DefaultTableColumnModel model = new DefaultTableColumnModel();
        header.setColumnModel(model);
        assertSame(model, header.getColumnModel());
        assertTrue(Arrays.asList(model.getColumnModelListeners()).contains(header));
        assertTrue(propertyChangeController.isChanged("columnModel"));
        testExceptionalCase(new IllegalArgumentCase() {
            @Override
            public void exceptionalAction() throws Exception {
                header.setColumnModel(null);
            }
        });
    }

    public void testCreateDefaultColumnModel() throws Exception {
        assertTrue(header.createDefaultColumnModel().getClass() == DefaultTableColumnModel.class);
        assertNotSame(header.createDefaultColumnModel(), header.createDefaultColumnModel());
    }

    public void testCreateDefaultRenderer() throws Exception {
        assertTrue(header.createDefaultRenderer() instanceof DefaultTableCellRenderer);
        assertTrue(header.createDefaultRenderer() instanceof UIResource);
        assertNotSame(header.createDefaultRenderer(), header.createDefaultRenderer());
    }

    public void testInitializeLocalVars() throws Exception {
        assertTrue(header.getReorderingAllowed());
        assertTrue(header.getResizingAllowed());
        assertTrue(header.getUpdateTableInRealTime());
        assertNotNull(header.getDefaultRenderer());
        assertNull(header.getResizingColumn());
        assertNull(header.getDraggedColumn());
        assertEquals(0, header.getDraggedDistance());
        assertNull(header.getTable());
        header.setReorderingAllowed(false);
        header.setResizingAllowed(false);
        header.setUpdateTableInRealTime(false);
        header.setDefaultRenderer(null);
        header.setResizingColumn(new TableColumn());
        header.setDraggedColumn(new TableColumn());
        header.setDraggedDistance(10);
        header.setTable(new JTable());
        header.initializeLocalVars();
        assertTrue(header.getReorderingAllowed());
        assertTrue(header.getResizingAllowed());
        assertTrue(header.getUpdateTableInRealTime());
        assertNotNull(header.getDefaultRenderer());
        assertNull(header.getResizingColumn());
        assertNull(header.getDraggedColumn());
        assertEquals(0, header.getDraggedDistance());
        assertNull(header.getTable());
    }

    public void testGetAccessibleContext() throws Exception {
        assertTrue(header.getAccessibleContext() instanceof JTableHeader.AccessibleJTableHeader);
    }
}
TOP

Related Classes of javax.swing.table.JTableHeaderTest

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.