TestableMenu.java
// Package name
package views.components.testable;
// System imports
import java.awt.Component;
import java.util.ArrayList;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
/**
* Testable version of a JMenu
* @author Ryan
*
*/
public class TestableMenu extends JMenu {
private static final long serialVersionUID = 1L;
private String name;
// Manually store menu items
private ArrayList<JMenuItem> menuItems = new ArrayList<>();
public TestableMenu() {}
public void setName(String name) {
this.name = name;
}
public JMenuItem add(JMenuItem menuItem) {
menuItems.add(menuItem);
return menuItem;
}
public void addSeparator() {
menuItems.add(null);
}
public String getName() {
return name;
}
public Component[] getComponents() {
Component[] comps = new Component[menuItems.size()];
for(int i = 0; i < comps.length; i++)
comps[i] = menuItems.get(i);
return comps;
}
public int getItemCount() {
return menuItems.size();
}
public JMenuItem getItem(int index) {
return menuItems.get(index);
}
}