package org.robotframework.swing.keyword.development; import java.awt.Component; import java.util.LinkedHashMap; import java.util.Map; import javax.swing.CellRendererPane; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JLayeredPane; import javax.swing.JList; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JRootPane; import javax.swing.JScrollBar; import javax.swing.JScrollPane; import javax.swing.JSpinner; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JToggleButton; import javax.swing.JTree; import javax.swing.JViewport; import javax.swing.table.JTableHeader; import javax.swing.text.JTextComponent; public class ComponentOccurences { @SuppressWarnings("serial") private Map<Class<? extends Component>, Integer> indexesByType = new LinkedHashMap<Class<? extends Component>, Integer>() {{ put(JButton.class, -1); put(JCheckBox.class, -1); put(JRadioButton.class, -1); put(JToggleButton.class, -1); put(JFileChooser.class, -1); put(JTable.class, -1); put(JList.class, -1); put(JTextComponent.class, -1); put(JTree.class, -1); put(JInternalFrame.class, -1); put(JFrame.class, -1); put(JPanel.class, -1); put(JComboBox.class, -1); put(JSpinner.class, -1); put(JLabel.class, -1); put(JTabbedPane.class, -1); put(JRootPane.class, -1); put(JLayeredPane.class, -1); put(CellRendererPane.class, -1); put(JScrollPane.class, -1); put(JMenuBar.class, -1); put(JViewport.class, -1); put(JScrollBar.class, -1); put(JTableHeader.class, -1); }}; public Integer countIndexOf(Component component) { for (Class<? extends Component> clazz: indexesByType.keySet()) { if (clazz.isInstance(component)) { Integer index = indexesByType.get(clazz) + 1; indexesByType.put(clazz, index); return index; } } return null; } }