public SelectionCdtEntity(string attribute)
 {
     Attribute = attribute;
     BtnSelect = new Button(By.XPath(XpathPrefix + "//input[@value='Select...']"));
     BtnClear = new Button(By.XPath(XpathPrefix + "//input[@value='Clear']"));
     LnkCdtEntLink = new Link(By.XPath(XpathPrefix + "//a"));
     TxtCdtEntInput = new TextBox(By.XPath(XpathPrefix + "//input[contains(@id, '_chooser')]"));
 }
 public CommandWindow()
 {
     SelScript = new Select(By.CssSelector("#selectScript"));
     TxtScriptName = new TextBox(By.CssSelector("#CommandScript\\2e name"));
     TxtScript = new TextBox(By.CssSelector("#CommandScript\\2e script"));
     BtnNew = new Button(By.CssSelector("#New"));
     BtnRun = new Button(By.CssSelector("#Run"));
     BtnSave = new Button(By.CssSelector("#Save"));
     BtnDelete = new Button(By.CssSelector("#Delete"));
     TxtResult = new TextBox(By.CssSelector("#OutputScript"));
 }
 public void EditNoteInline(Int32 index, String noteType, String newText)
 {
     var lnkTitle = new Link(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//a[contains(@class, 'ReviewTitle')]"));
     lnkTitle.Click();
     var noteArea = new TextBox(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//textArea"));
     var btnEditOk = new Button(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//input[@value = 'OK']"));
     var selType = new Select(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//select"));
     Wait.Until(d => noteArea.Displayed);
     selType.SelectOption(noteType);
     noteArea.Value = newText;
     btnEditOk.Click();
     Wait.Until(d => new Container(By.XPath("//div[contains(text(), '" + newText + "')]")).Displayed);
 }
 public void EditReviewerNoteInline(Int32 index, String newType, String newNote)
 {
     if (BtnExpandNotes.Exists) {
         BtnExpandNotes.Click();
         Wait.Until(d => BtnCollapseNotes.Exists);
     }
     // accept index starting at 0, xpath index start at 1, and the first row is the filter, so
     // add 2 to index argument
     var editLink = new Link(By.XPath("//*[@id='_webrRSV_DIV_0']/table/tbody/tr[" + (index + 2) + "]/td[2]/div[1]/strong/a"));
     editLink.Click();
     var inlineSelect =
         new Select(By.XPath("//*[@id='_webrRSV_DIV_0']/table/tbody/tr[" + (index + 2) + "]/td[2]/div[1]/div/select"));
     var inlineNoteText =
         new TextBox(By.XPath("//*[@id='_webrRSV_DIV_0']/table/tbody/tr[" + (index + 2) + "]/td[2]/div[3]/textarea"));
     inlineSelect.SelectOption(newType);
     inlineNoteText.Value = newNote;
     BtnInlineReviewerNoteOk.Click();
     Wait.Until(d => new Container(By.XPath("//div[text()='" + newNote + "']")).Exists);
 }
 public void RespondInline(Int32 index, String responseType, String response)
 {
     var lnkRespond = new Link(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//a[contains(@id, 'CreateResponse')]"));
     lnkRespond.Click();
     var txtResponse = new TextBox(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//div[@class='ResponseNote']//textarea"));
     var btnRespondOk = new Button(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//div[@class='ResponseNote']//input[@value = 'OK']"));
     var selType = new Select(By.XPath(XpathPrefix + "//tr[@data-drsv-row='" + index + "']//div[@class='ResponseTitle']//select"));
     Wait.Until(d => txtResponse.Displayed);
     selType.SelectOption(responseType);
     txtResponse.Value = response;
     btnRespondOk.Click();
     Wait.Until(d => new Container(By.XPath("//div[contains(text(), '" + response + "')]")).Displayed);
 }
 public static void SetCriteria(this IDynamicResultSetView component, String attribute, String criteria, Int16 row = 0)
 {
     var optionElement = new Select(By.XPath("//select[contains(@name, 'queryField" + (row + 1) + "')]/option[text() = '" + attribute + "']"));
     var displayName = ((RoomComponent) component).DisplayName;
     var prefix = "//span[text()='" + displayName + "']";
     var selAttribute = new Select(By.XPath(prefix + "/../../../../../table[2]//table[contains(@id,'_filterTable')]//select[contains(@id,'_queryField" + (row + 1) + "')]"));
     var txtCriteria = new TextBox(By.XPath(prefix + "/../../../../../table[2]//table[contains(@id,'_filterTable')]//input[contains(@id,'_queryCriteria" + (row + 1) + "')]"));
     Wait.Until(d => selAttribute.Enabled && optionElement.Exists && txtCriteria.Enabled);
     selAttribute.SelectOption(attribute);
     txtCriteria.Value = criteria;
     component.BtnGo.Click();
     Wait.Until(d => component.BtnGo.Enabled);
 }