package org.jboss.tools.mylyn.reddeer.mylynBuild; import org.jboss.reddeer.common.logging.Logger; import org.jboss.reddeer.swt.api.TreeItem; import org.jboss.reddeer.core.condition.JobIsRunning; import org.jboss.reddeer.common.condition.AbstractWaitCondition; import org.jboss.reddeer.swt.impl.button.PushButton; import org.jboss.reddeer.swt.impl.menu.ContextMenu; import org.jboss.reddeer.common.wait.TimePeriod; import org.jboss.reddeer.common.wait.WaitUntil; import org.jboss.reddeer.common.wait.WaitWhile; /** * Represents a TaskList on {@link TaskListView}. * * @author ldimaggi * */ public class MylynBuild { private static final TimePeriod TIMEOUT = TimePeriod.VERY_LONG; protected final Logger log = Logger.getLogger(this.getClass()); private TreeItem treeItem; public MylynBuild(TreeItem treeItem) { this.treeItem = treeItem; } public void delete() { delete(false); } public void delete(boolean stopFirst) { log.info("Deleting Build"); select(); new ContextMenu("Delete").select(); new PushButton("OK").click(); new WaitUntil(new TreeItemIsDisposed(treeItem), TIMEOUT); new WaitWhile(new JobIsRunning(), TIMEOUT); } protected void select() { treeItem.select(); } public String getName(){ return treeItem.getText(); } private class TreeItemIsDisposed extends AbstractWaitCondition { private TreeItem treeItem; public TreeItemIsDisposed(TreeItem treeItem) { this.treeItem = treeItem; } @Override public boolean test() { return treeItem.isDisposed(); } @Override public String description() { return "Build tree item is disposed"; } } }