001 /* 002 * Copyright 2002-2007 the original author or authors. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 005 * use this file except in compliance with the License. You may obtain a copy of 006 * the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 013 * License for the specific language governing permissions and limitations under 014 * the License. 015 */ 016 package org.springframework.richclient.util; 017 018 import javax.swing.JButton; 019 import javax.swing.JMenu; 020 import javax.swing.JMenuItem; 021 import javax.swing.JSeparator; 022 import javax.swing.JToolBar; 023 024 import junit.framework.TestCase; 025 026 /** 027 * Testcase for <code>MenuElementUtils</code> 028 * 029 * @author Peter De Bruycker 030 */ 031 public class SeparatorUtilsTests extends TestCase { 032 public void testConsolidateSeparatorsInToolBar() { 033 JToolBar toolBar = new JToolBar(); 034 035 toolBar.add(createButton("button1", false)); 036 toolBar.addSeparator(); // index 1 037 toolBar.add(createButton("button2", true)); 038 toolBar.addSeparator(); // index 3 039 toolBar.add(createButton("button3", false)); 040 toolBar.addSeparator(); // index 5 041 toolBar.add(createButton("button4",true)); 042 toolBar.addSeparator(); // index 7 043 toolBar.add(createButton("button5", false)); 044 045 SeparatorUtils.consolidateSeparators(toolBar); 046 047 assertEquals(9, toolBar.getComponentCount()); 048 049 assertFalse(toolBar.getComponent(1).isVisible()); 050 assertFalse(toolBar.getComponent(3).isVisible()); 051 assertTrue(toolBar.getComponent(5).isVisible()); 052 assertFalse(toolBar.getComponent(7).isVisible()); 053 } 054 055 public void testConsolidateSeparatorsReset() { 056 JMenu menu = new JMenu("test-menu"); 057 058 menu.add(createMenuItem("item1", false)); 059 menu.addSeparator(); // index 1 060 menu.add(createMenuItem("item2", true)); 061 menu.addSeparator(); // index 3 062 menu.add(createMenuItem("item3", false)); 063 menu.addSeparator(); // index 5 064 menu.add(createMenuItem("item4", true)); 065 menu.addSeparator(); // index 7 066 menu.add(createMenuItem("item5", false)); 067 068 SeparatorUtils.consolidateSeparators(menu); 069 070 menu.getMenuComponent(0).setVisible(true); 071 072 SeparatorUtils.consolidateSeparators(menu); 073 074 assertTrue(((JSeparator)menu.getMenuComponent(1)).isVisible()); 075 assertFalse(((JSeparator)menu.getMenuComponent(3)).isVisible()); 076 assertTrue(((JSeparator)menu.getMenuComponent(5)).isVisible()); 077 assertFalse(((JSeparator)menu.getMenuComponent(7)).isVisible()); 078 } 079 080 public void testConsolidateSeparatorsInMenu() { 081 JMenu menu = new JMenu("test-menu"); 082 083 menu.add(createMenuItem("item1", false)); 084 menu.addSeparator(); // index 1 085 menu.add(createMenuItem("item2", true)); 086 menu.addSeparator(); // index 3 087 menu.add(createMenuItem("item3", false)); 088 menu.addSeparator(); // index 5 089 menu.add(createMenuItem("item4", true)); 090 menu.addSeparator(); // index 7 091 menu.add(createMenuItem("item5", false)); 092 093 SeparatorUtils.consolidateSeparators(menu); 094 095 assertEquals(9, menu.getMenuComponentCount()); 096 097 assertFalse(menu.getMenuComponent(1).isVisible()); 098 assertFalse(menu.getMenuComponent(3).isVisible()); 099 assertTrue(menu.getMenuComponent(5).isVisible()); 100 assertFalse(menu.getMenuComponent(7).isVisible()); 101 } 102 103 104 public void testConsolidateSeparatorsInSubMenu() { 105 JMenu sub = new JMenu("sub-menu"); 106 sub.add(createMenuItem("sub-item1", true)); 107 sub.addSeparator(); 108 sub.add(createMenuItem("sub-item2", false)); 109 sub.addSeparator(); 110 sub.add(createMenuItem("sub-item3", true)); 111 112 JMenu menu = new JMenu("test-menu"); 113 menu.add(sub); 114 115 SeparatorUtils.consolidateSeparators(menu); 116 117 assertFalse(sub.getMenuComponent(1).isVisible()); 118 assertTrue(sub.getMenuComponent(3).isVisible()); 119 } 120 121 private static JMenuItem createMenuItem(String text, boolean visible) { 122 JMenuItem item = new JMenuItem(text); 123 124 item.setVisible(visible); 125 126 return item; 127 } 128 129 private static JButton createButton(String text, boolean visible) { 130 JButton button = new JButton(text); 131 button.setVisible(visible); 132 133 return button; 134 } 135 }