/* * Copyright (C) 2010 Brockmann Consult GmbH (info@brockmann-consult.de) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 3 of the License, or (at your option) * any later version. * This program 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 for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, see http://www.gnu.org/licenses/ */ package org.esa.snap.ui; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; public class GUIElementFactoryTest extends TestCase { public GUIElementFactoryTest(String testName) { super(testName); } public static Test suite() { return new TestSuite(GUIElementFactoryTest.class); } public void testAddComponentsToBorderPanel() { BorderLayout bl = new BorderLayout(); JPanel panel = new JPanel(bl); JTextArea centerComp = new JTextArea("textArea"); JLabel westComp = new JLabel("text"); String place = BorderLayout.WEST; BorderLayoutUtils.addToPanel(panel, centerComp, westComp, place); assertEquals(2, panel.getComponentCount()); assertEquals(true, panel.isAncestorOf(centerComp)); assertEquals(true, panel.isAncestorOf(westComp)); } public void testGridBagPanel_fourParams() { GridBagLayout gbl = new GridBagLayout(); JPanel panel = new JPanel(gbl); JLabel comp = new JLabel("text"); final GridBagConstraints gbconstr = GridBagUtils.createDefaultConstraints(); GridBagUtils.setAttributes(gbconstr, "gridx=2, gridy=4"); GridBagUtils.addToPanel(panel, comp, gbconstr); GridBagConstraints gbc = gbl.getConstraints(comp); assertEquals(GridBagConstraints.WEST, gbc.anchor); assertEquals(0, gbc.insets.top); assertEquals(3, gbc.insets.left); assertEquals(0, gbc.insets.bottom); assertEquals(3, gbc.insets.right); assertEquals(2, gbc.gridx); assertEquals(4, gbc.gridy); assertEquals(0, gbc.weightx, 0.01); assertEquals(0, gbc.weighty, 0.01); assertEquals(0, gbc.ipadx); assertEquals(0, gbc.ipady); assertEquals(1, gbc.gridheight); assertEquals(1, gbc.gridwidth); } public void testGridBagPanel_sevenParams() { GridBagLayout gbl = new GridBagLayout(); JPanel panel = new JPanel(gbl); JLabel comp = new JLabel("text"); final GridBagConstraints gbconstraints = GridBagUtils.createDefaultConstraints(); GridBagUtils.setAttributes(gbconstraints, "gridx=2, gridy=4, anchor=SOUTHEAST, weighty=1.3, insets.top=5"); GridBagUtils.addToPanel(panel, comp, gbconstraints); GridBagConstraints gbc = gbl.getConstraints(comp); assertEquals(GridBagConstraints.SOUTHEAST, gbc.anchor); assertEquals(5, gbc.insets.top); assertEquals(3, gbc.insets.left); assertEquals(0, gbc.insets.bottom); assertEquals(3, gbc.insets.right); assertEquals(2, gbc.gridx); assertEquals(4, gbc.gridy); assertEquals(0, gbc.weightx, 0.01); assertEquals(1.3, gbc.weighty, 0.01); assertEquals(0, gbc.ipadx); assertEquals(0, gbc.ipady); assertEquals(1, gbc.gridheight); assertEquals(1, gbc.gridwidth); } public void testGridBagPanel_eightParams() { GridBagLayout gbl = new GridBagLayout(); JPanel panel = new JPanel(gbl); JLabel comp = new JLabel("text"); final GridBagConstraints gbconstraints = GridBagUtils.createDefaultConstraints(); GridBagUtils.setAttributes(gbconstraints, "gridx=2, gridy=4, anchor=SOUTHEAST, weighty=1.3, insets.top=5, gridwidth=3"); GridBagUtils.addToPanel(panel, comp, gbconstraints); GridBagConstraints gbc = gbl.getConstraints(comp); assertEquals(GridBagConstraints.SOUTHEAST, gbc.anchor); assertEquals(5, gbc.insets.top); assertEquals(3, gbc.insets.left); assertEquals(0, gbc.insets.bottom); assertEquals(3, gbc.insets.right); assertEquals(2, gbc.gridx); assertEquals(4, gbc.gridy); assertEquals(0, gbc.weightx, 0.01); assertEquals(1.3, gbc.weighty, 0.01); assertEquals(0, gbc.ipadx); assertEquals(0, gbc.ipady); assertEquals(1, gbc.gridheight); assertEquals(3, gbc.gridwidth); } public void testSetAttributes() { GridBagConstraints gbc = new GridBagConstraints(); gbc = GridBagUtils.setAttributes(gbc, "gridx=RELATIVE,gridy=RELATIVE"); assertEquals(GridBagConstraints.RELATIVE, gbc.gridx); assertEquals(GridBagConstraints.RELATIVE, gbc.gridy); gbc = GridBagUtils.setAttributes(gbc, "gridx=12, gridy=34"); assertEquals(12, gbc.gridx); assertEquals(34, gbc.gridy); gbc = GridBagUtils.setAttributes(gbc, "gridwidth=REMAINDER,gridheight=REMAINDER"); assertEquals(GridBagConstraints.REMAINDER, gbc.gridwidth); assertEquals(GridBagConstraints.REMAINDER, gbc.gridheight); gbc = GridBagUtils.setAttributes(gbc, "gridwidth=RELATIVE,gridheight=RELATIVE"); assertEquals(GridBagConstraints.RELATIVE, gbc.gridwidth); assertEquals(GridBagConstraints.RELATIVE, gbc.gridheight); gbc = GridBagUtils.setAttributes(gbc, "gridwidth=56, gridheight=78"); assertEquals(56, gbc.gridwidth); assertEquals(78, gbc.gridheight); gbc = GridBagUtils.setAttributes(gbc, "weightx=0.4, weighty=0.6"); assertEquals(0.4, gbc.weightx, 1e-12); assertEquals(0.6, gbc.weighty, 1e-12); gbc = GridBagUtils.setAttributes(gbc, "anchor=CENTER"); assertEquals(GridBagConstraints.CENTER, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=NORTH"); assertEquals(GridBagConstraints.NORTH, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=NORTHEAST"); assertEquals(GridBagConstraints.NORTHEAST, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=EAST"); assertEquals(GridBagConstraints.EAST, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=SOUTHEAST"); assertEquals(GridBagConstraints.SOUTHEAST, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=SOUTH"); assertEquals(GridBagConstraints.SOUTH, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=SOUTHWEST"); assertEquals(GridBagConstraints.SOUTHWEST, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=WEST"); assertEquals(GridBagConstraints.WEST, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=NORTHWEST"); assertEquals(GridBagConstraints.NORTHWEST, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "anchor=10"); assertEquals(10, gbc.anchor); gbc = GridBagUtils.setAttributes(gbc, "fill=NONE"); assertEquals(GridBagConstraints.NONE, gbc.fill); gbc = GridBagUtils.setAttributes(gbc, "fill=HORIZONTAL"); assertEquals(GridBagConstraints.HORIZONTAL, gbc.fill); gbc = GridBagUtils.setAttributes(gbc, "fill=VERTICAL"); assertEquals(GridBagConstraints.VERTICAL, gbc.fill); gbc = GridBagUtils.setAttributes(gbc, "fill=BOTH"); assertEquals(GridBagConstraints.BOTH, gbc.fill); gbc = GridBagUtils.setAttributes(gbc, "fill=1"); assertEquals(1, gbc.fill); gbc = GridBagUtils.setAttributes(gbc, "insets.bottom=10,insets.left=11,insets.right=12,insets.top=13"); assertEquals(10, gbc.insets.bottom); assertEquals(11, gbc.insets.left); assertEquals(12, gbc.insets.right); assertEquals(13, gbc.insets.top); gbc = GridBagUtils.setAttributes(gbc, "ipadx=6,ipady=7"); assertEquals(6, gbc.ipadx); assertEquals(7, gbc.ipady); assertEquals(12, gbc.gridx); assertEquals(34, gbc.gridy); assertEquals(56, gbc.gridwidth); assertEquals(78, gbc.gridheight); assertEquals(0.4, gbc.weightx, 1e-12); assertEquals(0.6, gbc.weighty, 1e-12); assertEquals(10, gbc.anchor); assertEquals(1, gbc.fill); assertEquals(10, gbc.insets.bottom); assertEquals(11, gbc.insets.left); assertEquals(12, gbc.insets.right); assertEquals(13, gbc.insets.top); assertEquals(6, gbc.ipadx); assertEquals(7, gbc.ipady); try { gbc = GridBagUtils.setAttributes(gbc, null); } catch (IllegalArgumentException e) { fail("IllegalArgumentException not expected"); } try { gbc = GridBagUtils.setAttributes(gbc, ""); } catch (IllegalArgumentException e) { fail("IllegalArgumentException not expected"); } try { gbc = GridBagUtils.setAttributes(gbc, "ipadx"); fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } try { gbc = GridBagUtils.setAttributes(gbc, "ipadx="); fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } try { gbc = GridBagUtils.setAttributes(gbc, "ipadx=,"); fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } try { gbc = GridBagUtils.setAttributes(gbc, "=9"); fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } try { gbc = GridBagUtils.setAttributes(gbc, "="); fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } } }