Package javax.swing.plaf.metal

Source Code of javax.swing.plaf.metal.MetalToolBarUITest$TestMetalToolBarUI

/*
*  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 Vadim L. Bogdanov
* @version $Revision$
*/
package javax.swing.plaf.metal;

import java.awt.BorderLayout;
import java.awt.Insets;
import java.awt.Point;
import java.awt.event.ContainerListener;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeListener;
import java.util.Arrays;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToolBar;
import javax.swing.SwingTestCase;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.UIResource;

public class MetalToolBarUITest extends SwingTestCase {
    private class TestMetalToolBarUI extends MetalToolBarUI {
        public class TestMetalDockingListener extends MetalDockingListener {
            TestMetalDockingListener(final JToolBar toolBar) {
                super(toolBar);
            }

            boolean isDragging() {
                return isDragging;
            }

            Point getOrigin() {
                return origin;
            }
        }

        public Border nonRolloverBorder;

        private boolean dragToCalled;

        @Override
        protected PropertyChangeListener createRolloverListener() {
            return new MetalRolloverListener();
        }

        @Override
        protected ContainerListener createContainerListener() {
            return new MetalContainerListener();
        }

        public Point getDragWindowOffset() {
            return dragWindow.getOffset();
        }

        @Override
        protected Border createNonRolloverBorder() {
            nonRolloverBorder = super.createNonRolloverBorder();
            return nonRolloverBorder;
        }

        @Override
        protected void dragTo(final Point position, final Point origin) {
            dragToCalled = true;
            super.dragTo(position, origin);
        }
    }

    private JFrame frame;

    private JToolBar toolBar;

    private MetalToolBarUI ui;

    private JButton b;

    private JLabel label;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        b = new JButton();
        label = new JLabel();
        toolBar = new JToolBar();
        ui = new MetalToolBarUI();
        toolBar.setUI(ui);
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
        if (frame != null) {
            frame.dispose();
            frame = null;
        }
    }

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

    public void testUpdate() {
        // painting code, cannot test
    }

    public void testUninstallUI() {
        // nothing to test
    }

    public void testInstallUI() {
        // nothing to test
    }

    public void testCreateUI() {
        ComponentUI ui1 = MetalToolBarUI.createUI(toolBar);
        assertTrue(ui1 instanceof MetalToolBarUI);
        ComponentUI ui2 = MetalToolBarUI.createUI(toolBar);
        assertNotSame(ui1, ui2);
    }

    public void testCreateDockingListener() {
        assertTrue(ui.createDockingListener() instanceof MetalToolBarUI.MetalDockingListener);
    }

    public void testCreateRolloverBorder() {
        assertNotNull(ui.createRolloverBorder());
        if (isHarmony()) {
            assertTrue(ui.createRolloverBorder() instanceof UIResource);
        }
    }

    public void testCreateNonRolloverBorder() {
        assertNotNull(ui.createNonRolloverBorder());
        if (isHarmony()) {
            assertTrue(ui.createNonRolloverBorder() instanceof UIResource);
        }
    }

    public void testInstallListeners() {
        TestMetalToolBarUI ui = new TestMetalToolBarUI();
        toolBar.setUI(ui);
        assertTrue(Arrays.asList(toolBar.getContainerListeners()).contains(ui.contListener));
        assertTrue(Arrays.asList(toolBar.getPropertyChangeListeners()).contains(
                ui.rolloverListener));
        assertFalse(Arrays.asList(toolBar.getPropertyChangeListeners("JToolBar.isRollover"))
                .contains(ui.rolloverListener));
    }

    public void testUninstallListeners() {
        TestMetalToolBarUI ui = new TestMetalToolBarUI();
        toolBar.setUI(ui);
        ui.uninstallListeners();
        assertFalse(Arrays.asList(toolBar.getContainerListeners()).contains(ui.contListener));
        assertFalse(Arrays.asList(toolBar.getPropertyChangeListeners()).contains(
                ui.rolloverListener));
    }

    public void testSetBorderToNonRollover() {
        TestMetalToolBarUI ui = new TestMetalToolBarUI();
        toolBar.setUI(ui);
        ui.setBorderToNonRollover(b);
        assertSame(ui.nonRolloverBorder, b.getBorder());
        assertFalse(b.isRolloverEnabled());
        Border border = new EmptyBorder(new Insets(0, 0, 0, 0));
        b.setBorder(border);
        ui.setBorderToNonRollover(b);
        assertSame(border, b.getBorder());
        ui.setBorderToNonRollover(label);
        assertNull(label.getBorder());
        ui.setBorderToNonRollover(null);
    }

    public void testMetalToolBarUI() {
        // nothing to test
    }

    public void testCreateContainerListener() {
        assertNull(ui.createContainerListener());
    }

    public void testCreateRolloverListener() {
        assertNull(ui.createRolloverListener());
    }

    public void testSetDragOffset() {
        TestMetalToolBarUI ui = new TestMetalToolBarUI();
        toolBar.setUI(ui);
        Point offset = new Point(1, 2);
        ui.setDragOffset(offset);
        assertEquals(offset, ui.getDragWindowOffset());
    }

    public void testMetalDockingListener() {
        TestMetalToolBarUI ui = new TestMetalToolBarUI();
        toolBar.setUI(ui);
        toolBar.add(b);
        createAndShowFrame();
        TestMetalToolBarUI.TestMetalDockingListener l = ui.new TestMetalDockingListener(toolBar);
        MouseEvent e = new MouseEvent(toolBar, MouseEvent.MOUSE_PRESSED, 0, 0, toolBar
                .getWidth(), toolBar.getHeight(), 0, false);
        l.mousePressed(e);
        e = new MouseEvent(toolBar, MouseEvent.MOUSE_DRAGGED, 0, 0, toolBar.getWidth(), toolBar
                .getHeight(), 0, false);
        l.mouseDragged(e);
        // false because drag should occur only on bumps
        assertFalse(l.isDragging());
        assertFalse(ui.dragToCalled);
        Point p = new Point(4, 8);
        e = new MouseEvent(toolBar, MouseEvent.MOUSE_PRESSED, 0, 0, p.x, p.y, 0, false);
        l.mousePressed(e);
        e = new MouseEvent(toolBar, MouseEvent.MOUSE_DRAGGED, 0, 0, p.x, p.y, 0, false);
        l.mouseDragged(e);
        assertTrue(l.isDragging());
        assertTrue(ui.dragToCalled);
    }

    private void createAndShowFrame() {
        frame = new JFrame();
        frame.setSize(90, 90);
        frame.getContentPane().add(toolBar, BorderLayout.NORTH);
        frame.setVisible(true);
    }
}
TOP

Related Classes of javax.swing.plaf.metal.MetalToolBarUITest$TestMetalToolBarUI

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.