/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.tools.idea.tests.gui.framework.fixture.avdmanager;
import com.android.sdklib.devices.Device;
import com.android.tools.idea.avdmanager.ChooseDeviceDefinitionStep;
import com.android.tools.idea.tests.gui.framework.GuiTests;
import com.android.tools.idea.tests.gui.framework.fixture.newProjectWizard.AbstractWizardStepFixture;
import com.android.tools.idea.wizard.LabelWithEditLink;
import com.intellij.ui.SearchTextField;
import com.intellij.ui.components.JBLabel;
import com.intellij.ui.table.TableView;
import org.fest.swing.core.GenericTypeMatcher;
import org.fest.swing.core.MouseButton;
import org.fest.swing.core.Robot;
import org.fest.swing.data.TableCell;
import org.fest.swing.fixture.ComponentFixture;
import org.fest.swing.fixture.JTableFixture;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
public class ChooseDeviceDefinitionStepFixture extends AbstractWizardStepFixture {
public ChooseDeviceDefinitionStepFixture(@NotNull Robot robot, @NotNull JRootPane rootPane) {
super(robot, rootPane);
}
public ChooseDeviceDefinitionStepFixture enterSearchTerm(@NotNull String searchTerm) {
SearchTextField searchField = robot.finder().findByType(target, SearchTextField.class);
replaceText(searchField.getTextEditor(), searchTerm);
return this;
}
public ChooseDeviceDefinitionStepFixture selectDeviceByName(@NotNull final String deviceName) {
final TableView deviceList = robot.finder().find(target, new GenericTypeMatcher<TableView>(TableView.class) {
@Override
protected boolean isMatching(TableView component) {
return component.getColumnCount() > 1; // There are two tables on this step, but the category table only has 1 column
}
});
JTableFixture deviceListFixture = new JTableFixture(robot, deviceList);
TableCell cell = deviceListFixture.cell(deviceName);
deviceListFixture.selectCell(cell);
return this;
}
}