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
15
16
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 }