/******************************************************************************* * Copyright (c) 2007-2016 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributor: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.easymport.reddeer.wizard; import java.util.ArrayList; import java.util.List; import org.jboss.reddeer.common.logging.Logger; import org.jboss.reddeer.eclipse.ui.wizards.datatransfer.WizardProjectsImportPage; import org.jboss.reddeer.jface.wizard.WizardPage; import org.jboss.reddeer.swt.api.Combo; import org.jboss.reddeer.swt.api.TreeItem; import org.jboss.reddeer.swt.impl.button.CheckBox; import org.jboss.reddeer.swt.impl.button.OkButton; import org.jboss.reddeer.swt.impl.combo.LabeledCombo; import org.jboss.reddeer.swt.impl.label.DefaultLabel; import org.jboss.reddeer.swt.impl.link.DefaultLink; import org.jboss.reddeer.swt.impl.shell.DefaultShell; import org.jboss.reddeer.swt.impl.tree.DefaultTree; public class SmartImportRootWizardPage extends WizardPage { private static final Logger log = Logger.getLogger(WizardProjectsImportPage.class); public void selectDirectory(String path){ log.info("Selecting directory \""+path+"\" in SelectImportRootWizardPage."); Combo selectDirText = new LabeledCombo("Import source:"); selectDirText.setText(path); } public List<String> getDetectors(){ List<String> resultList = new ArrayList<String>(); new DefaultLink("installed project configurators").click(); new DefaultShell("Installed project configuratos"); String labelText = new DefaultLabel(1).getText(); String[] split = labelText.split("\n"); for (String row: split) { if (row.startsWith("*")){ resultList.add(row.substring(2)); } } new OkButton().click(); return resultList; } public void setSearchForNestedProjects(boolean value){ new CheckBox("Search for nested projects").toggle(value); } public void setDetectAndConfigureNatures(boolean value){ new CheckBox("Detect and configure project natures").toggle(value); } public void setHideOpenProjects(boolean value){ new CheckBox("Hide already open projects").toggle(value); } public List<ProjectProposal> getAllProjectProposals() { DefaultTree tree = new DefaultTree(); List<ProjectProposal> returnList = parseTree(tree); return returnList; } private List<ProjectProposal> parseTree(DefaultTree tree) { List<ProjectProposal> returnList = new ArrayList<>(); for (TreeItem treeItem : tree.getAllItems()) { ProjectProposal projectProposal = new ProjectProposal(treeItem.getCell(0)); returnList.add(fillProjectProposal(projectProposal, treeItem)); } return returnList; } private ProjectProposal fillProjectProposal(ProjectProposal projectProposal, TreeItem treeItem) { String cell = treeItem.getCell(1); String[] split = cell.split(","); for (String type : split) { if (!type.equals("")) { projectProposal.addImportAs(type); } } return projectProposal; } }