blob: 54d98f47cde01a5691e5258c7ee3d05ad5ec77a5 [file] [log] [blame]
/*
* 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.
*/
package groovy.swing
import javax.swing.*
import javax.swing.table.*
import javax.swing.tree.*
class SwingMetaMethodsTest extends GroovySwingTestCase {
void testContainer() {
testInEDT {
def container = new JPanel()
def c0 = new JLabel()
def c1 = new JLabel()
assert container.size() == 0
container << c0
assert container.size() == 1
container << c1
assert container.size() == 2
assert container[0] == c0
assert container[1] == c1
assert container.collect([]) {it} == [c0, c1]
container.clear()
assert container.size() == 0
}
}
void testButtonGroup() {
testInEDT {
def buttonGroup = new ButtonGroup()
def c0 = new JButton()
def c1 = new JButton()
assert buttonGroup.size() == 0
buttonGroup << c0
assert buttonGroup.size() == 1
buttonGroup << c1
assert buttonGroup.size() == 2
assert buttonGroup[0] == c0
assert buttonGroup[1] == c1
assert buttonGroup.collect([]) {it} == [c0, c1]
}
}
void testListModel() {
testInEDT {
def list = [1, 2, 3, 4, 5]
def model = [
getSize: {-> list.size() },
getElementAt: {int i -> list[i] }
] as AbstractListModel
assert model.size() == list.size()
assert model[2] == list[2]
assert [2, 4, 6, 8, 10] == model.collect([]) { it * 2 }
}
}
void testDefaultListModel() {
testInEDT {
def list = [1, 2, 3, 4, 5]
def model = new DefaultListModel()
list.each { model << it }
assert model.size() == list.size()
assert model[2] == list[2]
assert [2, 4, 6, 8, 10] == model.collect([]) { it * 2 }
model[2] = 42
assert 42 == model[2]
}
}
void testJComboBox() {
testInEDT {
def model = new DefaultComboBoxModel()
def combo = new JComboBox(model)
def item0 = "Item 0"
def item1 = "Item 1"
assert combo.size() == 0
combo << item0
assert combo.size() == 1
combo << item1
assert combo.size() == 2
assert combo[0] == item0
assert combo[1] == item1
assert combo.collect([]) {it} == [item0, item1]
combo.clear()
assert combo.size() == 0
}
}
void testMutableComboModel() {
testInEDT {
def list = [1, 2, 3, 4, 5]
def model = new DefaultComboBoxModel()
list.each { model << it }
assert model.size() == list.size()
assert model[2] == list[2]
assert [2, 4, 6, 8, 10] == model.collect([]) { it * 2 }
model[2] = 42
assert model.size() == 6
assert 42 == model[2]
model.clear()
assert !model.size()
}
}
void testTableModel() {
testInEDT {
def data = [
[1, 11, 111, 1111],
[2, 22, 222, 2222],
[3, 33, 333, 3333]
]
def model = [
getColumnCount: {-> 4 },
getRowCount: {-> 3 },
getValueAt: {int r, int c -> data[r][c] }
] as AbstractTableModel
assert model.size() == 3
assert model[1] == [2, 22, 222, 2222]
assert [1, 2, 3] == model.collect([]) {row -> row[0] }
}
}
void testDefaultTableModel() {
testInEDT {
def model = new DefaultTableModel(0i, 4i)
assert model.size() == 0
model << null
model << [1]
model << [2, 22]
model << [3, 33, 333]
model << [4, 44, 444, 4444]
model << [5, 55, 555, 5555, 5555]
assert model.size() == 6
assert model[0] == [null, null, null, null]
assert model[1] == [1, null, null, null]
assert model[2] == [2, 22, null, null]
assert model[3] == [3, 33, 333, null]
assert model[4] == [4, 44, 444, 4444]
assert model[5] == [5, 55, 555, 5555]
model[2] = [9, 9, 9, 9]
assert model.size() == 7
assert model[2] == [9, 9, 9, 9]
assert model[3] == [2, 22, null, null]
}
}
void testDefaultTableColumnModel() {
testInEDT {
def model = new DefaultTableColumnModel()
assert model.size() == 0
model << new TableColumn(2)
model << new TableColumn(1)
model << new TableColumn(0)
assert model.size() == 3
assert 2 == model[0].modelIndex
assert [2, 1, 0] == model*.getModelIndex()
}
}
void testTreePath() {
testInEDT {
def path = new TreePath(["A", "B"] as Object[])
assert path.size() == 2
assert "A" == path[0]
assert ["A", "B"] == path.collect([]) {it}
path = path << "C"
assert path.size() == 3
assert "C" == path[2]
assert ["A", "B", "C"] == path.collect([]) {it}
}
}
void testDefaultMutableTreeNode() {
testInEDT {
def root = new DefaultMutableTreeNode("root")
assert 0 == root.size()
root << new DefaultMutableTreeNode("one")
root << new DefaultMutableTreeNode("two")
root << new DefaultMutableTreeNode("three")
assert 3 == root.size()
assert ["one", "two", "three"] == root*.getUserObject()
root[2] << new DefaultMutableTreeNode("A")
root[2] << new DefaultMutableTreeNode("B")
assert root[2].size() == 2
assert ["A", "B"] == root[2]*.getUserObject()
root[2][1] = new DefaultMutableTreeNode("C")
assert root[2].size() == 3
assert ["A", "C", "B"] == root[2]*.getUserObject()
root[2].clear()
assert 0 == root[2].size()
}
}
void testMenu() {
testInEDT {
def menu = new JMenu()
assert menu.size() == 0
def label = new JLabel()
menu << label
assert menu.size() == 1
assert menu[0] == label
menu << new JMenuItem("item")
assert menu.size() == 2
menu << ([actionPerformed: {}] as AbstractAction)
assert menu.size() == 3
menu << "item3"
assert menu.size() == 4
def i = 4
menu << "item$i"
assert menu.size() == 5
assert label == menu.find {it instanceof JLabel}
}
}
void testMenuBar() {
testInEDT {
def menuBar = new JMenuBar()
assert menuBar.size() == 0
def menu = new JMenu("Menu0")
menuBar << menu
assert menuBar.size() == 1
assert menuBar[0] == menu
menuBar << new JMenu("Menu1")
assert menuBar.size() == 2
assert ["Menu0", "Menu1"] == menuBar*.text
}
}
void testPopupMenu() {
testInEDT {
def popupMenu = new JPopupMenu()
assert popupMenu.size() == 0
def label = new JLabel()
popupMenu << label
assert popupMenu.size() == 1
assert popupMenu[0] == label
popupMenu << new JMenuItem("item")
assert popupMenu.size() == 2
popupMenu << ([actionPerformed: {}] as AbstractAction)
assert popupMenu.size() == 3
popupMenu << "item3"
assert popupMenu.size() == 4
def i = 4
popupMenu << "item$i"
assert popupMenu.size() == 5
assert popupMenu.find {it.text == "item3"}
}
}
void testTabbedPane() {
testInEDT {
def tabbedPane = new JTabbedPane()
def c0 = new JLabel(name: "label0", text: "Label0")
def c1 = new JLabel(name: "label1", text: "Label1")
assert tabbedPane.size() == 0
tabbedPane << c0
assert tabbedPane.size() == 1
tabbedPane << c1
assert tabbedPane.size() == 2
assert tabbedPane[0] == c0
assert [c0, c1] == tabbedPane.collect([]) {it}
tabbedPane.clear()
assert tabbedPane.size() == 0
}
}
void testToolBar() {
testInEDT {
def toolBar = new JToolBar()
def c0 = new JButton(name: "label0", text: "Label0")
def c1 = new JButton(name: "label1", text: "Label1")
assert toolBar.size() == 0
toolBar << c0
assert toolBar.size() == 1
toolBar << c1
assert toolBar.size() == 2
assert toolBar[0] == c0
assert [c0, c1] == toolBar.collect([]) {it}
}
}
}