test_class.declarator: structure
test_class.modifier: private
test_class.original_string: private TabStructure structure;
test_class.type: TabStructure
test_class.var_name: structure
test_class.file: api/src/test/java/edu/wpi/first/shuffleboard/api/tab/model/TabStructureTest.java
test_class.identifier: TabStructureTest
test_case.body: @Test
    public void testGetTab() {
      assertEquals(0, structure.getTabs().size(), "Structure should have no initial tabs");
      TabModel tab = structure.getTab("Title");
      assertAll(
          () -> assertEquals(1, structure.getTabs().size(), "Should be one tab now"),
          () -> assertEquals(tab, structure.getTabs().get("Title"))
      );
    }
test_case.class_method_signature: TabStructureTest.testGetTab()
test_case.full_signature: @Test public void testGetTab()
test_case.identifier: testGetTab
test_case.invocations: assertEquals size getTabs getTab assertAll assertEquals size getTabs assertEquals get getTabs
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetTab()
focal_class.declarator: tabs = new LinkedHashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, TabModel> tabs = new LinkedHashMap<>();
focal_class.type: Map<String, TabModel>
focal_class.var_name: tabs
focal_class.declarator: structureChangeListeners = new ArrayList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<StructureChangeListener> structureChangeListeners = new ArrayList<>();
focal_class.type: List<StructureChangeListener>
focal_class.var_name: structureChangeListeners
focal_class.declarator: selectedTabIndex = -1
focal_class.modifier: private
focal_class.original_string: private int selectedTabIndex = -1;
focal_class.type: int
focal_class.var_name: selectedTabIndex
focal_class.declarator: selectedTabTitle = null
focal_class.modifier: private
focal_class.original_string: private String selectedTabTitle = null;
focal_class.type: String
focal_class.var_name: selectedTabTitle
focal_class.file: api/src/main/java/edu/wpi/first/shuffleboard/api/tab/model/TabStructure.java
focal_class.identifier: TabStructure
focal_class.class_method_signature: TabStructure.getTab(String title)
focal_class.full_signature: public TabModel getTab(String title)
focal_class.identifier: getTab
focal_class.modifiers: public
focal_class.parameters: (String title)
focal_class.return: TabModel
focal_class.signature: TabModel getTab(String title)
focal_class.class_method_signature: TabStructure.getTabs()
focal_class.full_signature: public Map<String, TabModel> getTabs()
focal_class.identifier: getTabs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<String, TabModel>
focal_class.signature: Map<String, TabModel> getTabs()
focal_class.class_method_signature: TabStructure.setSelectedTab(int tabIndex)
focal_class.full_signature: public void setSelectedTab(int tabIndex)
focal_class.identifier: setSelectedTab
focal_class.modifiers: public
focal_class.parameters: (int tabIndex)
focal_class.return: void
focal_class.signature: void setSelectedTab(int tabIndex)
focal_class.class_method_signature: TabStructure.setSelectedTab(String title)
focal_class.full_signature: public void setSelectedTab(String title)
focal_class.identifier: setSelectedTab
focal_class.modifiers: public
focal_class.parameters: (String title)
focal_class.return: void
focal_class.signature: void setSelectedTab(String title)
focal_class.class_method_signature: TabStructure.getSelectedTabIndex()
focal_class.full_signature: public int getSelectedTabIndex()
focal_class.identifier: getSelectedTabIndex
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getSelectedTabIndex()
focal_class.class_method_signature: TabStructure.getSelectedTabTitle()
focal_class.full_signature: public String getSelectedTabTitle()
focal_class.identifier: getSelectedTabTitle
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getSelectedTabTitle()
focal_class.class_method_signature: TabStructure.addStructureChangeListener(StructureChangeListener listener)
focal_class.full_signature: public void addStructureChangeListener(StructureChangeListener listener)
focal_class.identifier: addStructureChangeListener
focal_class.modifiers: public
focal_class.parameters: (StructureChangeListener listener)
focal_class.return: void
focal_class.signature: void addStructureChangeListener(StructureChangeListener listener)
focal_class.class_method_signature: TabStructure.removeStructureChangeListener(StructureChangeListener listener)
focal_class.full_signature: public void removeStructureChangeListener(StructureChangeListener listener)
focal_class.identifier: removeStructureChangeListener
focal_class.modifiers: public
focal_class.parameters: (StructureChangeListener listener)
focal_class.return: void
focal_class.signature: void removeStructureChangeListener(StructureChangeListener listener)
focal_class.class_method_signature: TabStructure.dirty()
focal_class.full_signature: public void dirty()
focal_class.identifier: dirty
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dirty()
focal_method.body: public TabModel getTab(String title) {
      if (!tabs.containsKey(title)) {
        TabModel tab = new TabModelImpl(title);
        tabs.put(title, tab);
        dirty();
      }
      return tabs.get(title);
    }
focal_method.class_method_signature: TabStructure.getTab(String title)
focal_method.full_signature: public TabModel getTab(String title)
focal_method.identifier: getTab
focal_method.invocations: containsKey put dirty get
focal_method.modifiers: public
focal_method.parameters: (String title)
focal_method.return: TabModel
focal_method.signature: TabModel getTab(String title)