1   package com.atlassian.pageobjects.components;
2   
3   
4   import com.atlassian.pageobjects.elements.PageElement;
5   
6   import java.util.List;
7   
8   /**
9    * Represents a components that has multiple tabs with content.
10   */
11  public interface TabbedComponent
12  {
13      /**
14       * Returns element that represents the selected tab.
15       */
16      PageElement selectedTab();
17  
18      /**
19       * Returns element that represents the selected tab's view.
20       */
21      PageElement selectedView();
22  
23      /**
24       * Returns all elements that represent the tabs.
25       */
26      List<PageElement> tabs();
27  
28      /**
29       * Open's the given tab's view.
30       */
31      PageElement openTab(PageElement tab);
32  }