use of org.fest.swing.fixture.JTableFixture in project android by JetBrains.
the class TranslationsEditorTest method enteringTextInTranslationTextFieldUpdatesTableCell.
@Test
public void enteringTextInTranslationTextFieldUpdatesTableCell() {
JTableFixture table = myTranslationsEditor.getTable();
TableCell cell = TableCell.row(2).column(3);
table.selectCell(cell);
myTranslationsEditor.getTranslationTextField().enterText("cancel_en");
// Make the Translation text field lose focus
myTranslationsEditor.getKeyTextField().focus();
assertEquals("cancel_en", table.valueAt(cell));
}
use of org.fest.swing.fixture.JTableFixture in project ats-framework by Axway.
the class SwingElementLocator method findFixture.
public static ComponentFixture<? extends Component> findFixture(UiElement uiElement) {
SwingDriverInternal driver = (SwingDriverInternal) uiElement.getUiDriver();
ContainerFixture<?> containerFixture = (ContainerFixture<?>) driver.getActiveContainerFixture();
Class<? extends Component> componentClass = componentsMap.get(uiElement.getClass());
try {
if (componentClass.equals(JButton.class)) {
return (ComponentFixture<? extends Component>) new JButtonFixture(containerFixture.robot, (JButton) findElement(uiElement));
} else if (componentClass.equals(JTextComponent.class)) {
return (ComponentFixture<? extends Component>) new JTextComponentFixture(containerFixture.robot, (JTextComponent) findElement(uiElement));
} else if (componentClass.equals(JMenuItem.class)) {
if (uiElement.getElementProperty("path") != null) {
return containerFixture.menuItemWithPath(uiElement.getElementProperty("path").split("[\\,\\/]+"));
} else {
return (ComponentFixture<? extends Component>) new JMenuItemFixture(containerFixture.robot, (JMenuItem) findElement(uiElement));
}
} else if (componentClass.equals(JPopupMenu.class)) {
return (ComponentFixture<? extends Component>) new JPopupMenuFixture(containerFixture.robot, (JPopupMenu) findElement(uiElement));
} else if (componentClass.equals(JTree.class)) {
return (ComponentFixture<? extends Component>) new JTreeFixture(containerFixture.robot, (JTree) findElement(uiElement));
} else if (componentClass.equals(JList.class)) {
return (ComponentFixture<? extends Component>) new JListFixture(containerFixture.robot, (JList) findElement(uiElement));
} else if (componentClass.equals(JCheckBox.class)) {
return (ComponentFixture<? extends Component>) new JCheckBoxFixture(containerFixture.robot, (JCheckBox) findElement(uiElement));
} else if (componentClass.equals(JToggleButton.class)) {
return (ComponentFixture<? extends Component>) new JToggleButtonFixture(containerFixture.robot, (JToggleButton) findElement(uiElement));
} else if (componentClass.equals(JComboBox.class)) {
return (ComponentFixture<? extends Component>) new JComboBoxFixture(containerFixture.robot, (JComboBox) findElement(uiElement));
} else if (componentClass.equals(JRadioButton.class)) {
return (ComponentFixture<? extends Component>) new JRadioButtonFixture(containerFixture.robot, (JRadioButton) findElement(uiElement));
} else if (componentClass.equals(JTable.class)) {
return (ComponentFixture<? extends Component>) new JTableFixture(containerFixture.robot, (JTable) findElement(uiElement));
} else if (componentClass.equals(JSpinner.class)) {
return (ComponentFixture<? extends Component>) new JSpinnerFixture(containerFixture.robot, (JSpinner) findElement(uiElement));
} else if (componentClass.equals(JTabbedPane.class)) {
return (ComponentFixture<? extends Component>) new JTabbedPaneFixture(containerFixture.robot, (JTabbedPane) findElement(uiElement));
} else if (componentClass.equals(JOptionPane.class)) {
return (ComponentFixture<? extends Component>) containerFixture.optionPane();
} else if (componentClass.equals(JLabel.class)) {
return (ComponentFixture<? extends Component>) new JLabelFixture(containerFixture.robot, (JLabel) findElement(uiElement));
} else if (componentClass.equals(Component.class)) {
return new ComponentFixture<Component>(containerFixture.robot, findElement(uiElement)) {
};
} else if (componentClass.equals(JFileChooser.class)) {
// TODO - might be searched by name too
return containerFixture.fileChooser(Timeout.timeout(UiEngineConfigurator.getInstance().getElementStateChangeDelay()));
} else {
throw new ElementNotFoundException(uiElement.toString() + " not found. No such Fixture");
}
} catch (ComponentLookupException cle) {
throw new ElementNotFoundException(uiElement.toString() + " not found.", cle);
} catch (WaitTimedOutError exc) {
// thrown for OptionPane search, wait for Window (BasicRobot.waitForWindow), AbstractJTableCellWriter, JTreeDriver.waitForChildrenToShowUp, each Pause wait
throw new ElementNotFoundException(uiElement.toString() + " not found.", exc);
}
}
use of org.fest.swing.fixture.JTableFixture in project ats-framework by Axway.
the class SwingTable method rightClickCell.
/**
* Right click on table cell
*
* @param row the row number
* @param column the column number
* @throws VerificationException if the table element doesn't exist
*/
@PublicAtsApi
public void rightClickCell(int row, int column) {
new SwingElementState(this).waitToBecomeExisting();
JTableFixture tableFixture = (JTableFixture) SwingElementLocator.findFixture(this);
try {
tableFixture.cell(new TableCell(row, column) {
}).rightClick();
} catch (Exception e) {
throw new UiElementException(e.getMessage(), this);
}
}
use of org.fest.swing.fixture.JTableFixture in project ats-framework by Axway.
the class SwingTable method getCellForegroundColor.
/**
* Returns the table cell foreground {@link Color}
*
* @param row the row number
* @param column the column number
*/
@PublicAtsApi
public Color getCellForegroundColor(int row, int column) {
new SwingElementState(this).waitToBecomeExisting();
JTableFixture tableFixture = (JTableFixture) SwingElementLocator.findFixture(this);
return tableFixture.foregroundAt(new TableCell(row, column) {
}).target();
}
use of org.fest.swing.fixture.JTableFixture in project ats-framework by Axway.
the class SwingTable method getCellIndexesByValue.
/**
* Get table cell coordinates by cell value
*
* @param value cell value to search for
* @param isRegEx if the value is a regular expression
* @return an {@link ArrayList} with cell coordinates(indexes) represented by arrays [ row, column ] which contains
* the searched value
* @throws VerificationException if the table element doesn't exist
*/
@PublicAtsApi
public List<Integer[]> getCellIndexesByValue(String value, boolean isRegEx) {
new SwingElementState(this).waitToBecomeExisting();
List<Integer[]> results = new ArrayList<Integer[]>();
JTableFixture tableFixture = (JTableFixture) SwingElementLocator.findFixture(this);
try {
if (value == null) {
isRegEx = false;
}
Pattern regexPattern = null;
if (isRegEx) {
regexPattern = Pattern.compile(value);
}
for (int row = 0; row < tableFixture.target.getRowCount(); row++) {
for (int column = 0; column < tableFixture.target.getColumnCount(); column++) {
String cellValue = null;
try {
cellValue = tableFixture.valueAt(new TableCell(row, column) {
});
} catch (NullPointerException npe) {
// valueAt() throws NPE if the cell is null
}
if (cellValue == null && value != null) {
continue;
}
if ((cellValue == null && value == null) || (isRegEx && regexPattern.matcher(cellValue).matches()) || (!isRegEx && cellValue.equals(value))) {
results.add(new Integer[] { row, column });
}
}
}
} catch (Exception e) {
throw new UiElementException(e.getMessage(), this);
}
return results;
}
Aggregations