/**
* Copyright 2014 Comcast Cable Communications Management, LLC
*
* This file is part of CATS.
*
* CATS 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.
*
* CATS 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 CATS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.comcast.cats.vision.test.utils;
import java.awt.Component;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JViewport;
import org.uispec4j.Button;
import org.uispec4j.Panel;
import org.uispec4j.TabGroup;
import org.uispec4j.Table;
import org.uispec4j.Window;
public class CommonTestUtils
{
/**
* Allocated table headers
*/
public static String[] ALLOCATED_TABLE_STRINGS =
{
"Id",
"Name",
"MAC Address",
"IPAddress",
"Reservation Name",
"Rack Name",
"Environment Name",
"Content",
"Model" };
/**
* Available table headers
*/
public static String[] AVAILABLE_TABLE_STRINGS =
{
"Id",
"Name",
"MAC Address",
"IPAddress",
"Reservation Name",
"Rack Name",
"Environment Name",
"Content",
"Model" };
public static boolean isLabelPresent( final Panel containerPanel, final String labelName, final String labelText )
{
boolean isLabelPresent = false;
Component[] components = containerPanel.getSwingComponents( JLabel.class );
for ( Component component : components )
{
if ( component.getName() == labelText )
{
JLabel label = ( JLabel ) component;
isLabelPresent = label.getText().equals( labelText );
if ( isLabelPresent )
{
break;
}
}
}
return isLabelPresent;
}
public static Button getConfigPanelButton( final Window window, String buttonName )
{
TabGroup mainTabGroup = window.getTabGroup( "visionTabs" );
mainTabGroup.selectTab( "My Settops" );
JTabbedPane mainTabbedPane = mainTabGroup.getAwtComponent();
mainTabbedPane.setSelectedIndex( 0 );
JPanel configPanel = getConfigPanelFromTabbedPane( mainTabbedPane );
JPanel configButtonPanel = ( JPanel ) configPanel.getComponent( 0 );
Button configButton = null;
for ( Component component : configButtonPanel.getComponents() )
{
if ( buttonName.equals( component.getName() ) )
{
JButton button = ( JButton ) component;
configButton = new Button( button );
break;
}
}
return configButton;
}
public static JTextField getConfigPanelTextField( final Window window, String textFieldName )
{
JTextField textField = null;
TabGroup mainTabGroup = window.getTabGroup( "visionTabs" );
mainTabGroup.selectTab( "My Settops" );
JTabbedPane mainTabbedPane = mainTabGroup.getAwtComponent();
mainTabbedPane.setSelectedIndex( 0 );
JPanel configPanel = getConfigPanelFromTabbedPane( mainTabbedPane );
JPanel configButtonPanel = ( JPanel ) configPanel.getComponent( 0 );
for ( Component component : configButtonPanel.getComponents() )
{
if ( textFieldName.equals( component.getName() ) )
{
textField = ( JTextField ) component;
break;
}
}
return textField;
}
public static JPanel getConfigPanel( final Window window )
{
TabGroup mainTabGroup = window.getTabGroup( "visionTabs" );
mainTabGroup.selectTab( "My Settops" );
JTabbedPane mainTabbedPane = mainTabGroup.getAwtComponent();
mainTabbedPane.setSelectedIndex( 0 );
JPanel configPanel = getConfigPanelFromTabbedPane( mainTabbedPane );
JPanel configTablePanel = ( JPanel ) configPanel.getComponent( 1 );
return configTablePanel;
}
public static JPanel getConfigButtonPanel( final Window window )
{
TabGroup mainTabGroup = window.getTabGroup( "visionTabs" );
mainTabGroup.selectTab( "My Settops" );
JTabbedPane mainTabbedPane = mainTabGroup.getAwtComponent();
mainTabbedPane.setSelectedIndex( 0 );
JPanel configPanel = getConfigPanelFromTabbedPane( mainTabbedPane );
JPanel configTablePanel = ( JPanel ) configPanel.getComponent( 1 );
return configTablePanel;
}
public static JPanel getConfigPanelFromTabbedPane( JTabbedPane mainTabbedPane )
{
JPanel configPanel = null;
Component[] mainComponents = mainTabbedPane.getComponents();
for ( Component component : mainComponents )
{
if ( component instanceof JScrollPane )
{
if ( ( component.getName() != null ) && ( component.getName().equals( "mySettopsPane" ) ) )
{
JScrollPane mySettopsPane = ( JScrollPane ) component;
Component viewPortComponent = mySettopsPane.getComponent( 0 );
JViewport viewPort = ( JViewport ) viewPortComponent;
Component configPanelComponent = viewPort.getComponent( 0 );
configPanel = ( JPanel ) configPanelComponent;
break;
}
}
}
return configPanel;
}
public static Table getTableFromConfigPanel( JPanel panel, String scrollPaneName, String tabLabel, int index )
{
Table uiTable = null;
for ( Component component : panel.getComponents() )
{
if ( ( component.getName() != null ) && ( "resultsTabbedPane".equals( component.getName() ) ) )
{
JTabbedPane resultsTabbedPane = ( JTabbedPane ) component;
TabGroup resultsTabGroup = new TabGroup( resultsTabbedPane );
resultsTabGroup.selectTab( tabLabel );
if ( scrollPaneName.equals( resultsTabbedPane.getComponent( index ).getName() ) )
{
JScrollPane settopsScrollPane = ( JScrollPane ) resultsTabbedPane.getComponent( index );
for ( Component settopsScrollPaneComponent : settopsScrollPane.getComponents() )
{
if ( settopsScrollPaneComponent instanceof JViewport )
{
JViewport viewPort = ( JViewport ) settopsScrollPaneComponent;
for ( Component innerComponent : viewPort.getComponents() )
{
if ( innerComponent instanceof JTable )
{
JTable settopsTable = ( JTable ) innerComponent;
uiTable = new Table( settopsTable );
break;
}
}
}
}
}
}
}
return uiTable;
}
}