View Javadoc

1   package com.atlassian.pageobjects.components.aui;
2   
3   import com.atlassian.pageobjects.PageBinder;
4   import com.atlassian.pageobjects.binder.Init;
5   import com.atlassian.pageobjects.components.ActivatedComponent;
6   import com.atlassian.pageobjects.elements.PageElement;
7   import com.atlassian.pageobjects.elements.PageElementFinder;
8   import com.atlassian.pageobjects.elements.query.Poller;
9   import org.openqa.selenium.By;
10  
11  import javax.inject.Inject;
12  
13  /**
14   * Represents an inline dialog created via AUI.
15   *
16   * This is an example of a reusable components.
17   */
18  public class AuiInlineDialog implements ActivatedComponent<AuiInlineDialog>
19  {
20      @Inject
21      protected PageBinder pageBinder;
22  
23      @Inject
24      protected PageElementFinder elementFinder;
25  
26      private final By triggerLocator;
27      private final String identifier;
28      private PageElement triggerElement;
29      private PageElement viewElement;
30  
31      public AuiInlineDialog(By triggerLocator, String identifier)
32      {
33          this.triggerLocator = triggerLocator;
34          this.identifier = identifier;
35      }
36  
37      @Init
38      public void initialize()
39      {
40          triggerElement = elementFinder.find(triggerLocator);
41          viewElement = elementFinder.find(By.id("inline-dialog-" + identifier));
42      }
43  
44      public PageElement getTrigger()
45      {
46          return triggerElement;
47      }
48  
49      public PageElement getView()
50      {
51          return viewElement;
52      }
53  
54      public AuiInlineDialog open()
55      {
56          triggerElement.click();
57          Poller.waitUntilTrue(viewElement.timed().isVisible());
58          return this;
59      }
60  
61      public boolean isOpen()
62      {
63          return viewElement.isPresent() && viewElement.isVisible();
64      }
65  }