test_class.declarator: ntInstance
test_class.modifier: private
test_class.original_string: private NetworkTableInstance ntInstance;
test_class.type: NetworkTableInstance
test_class.var_name: ntInstance
test_class.declarator: rootTable
test_class.modifier: private
test_class.original_string: private NetworkTable rootTable;
test_class.type: NetworkTable
test_class.var_name: rootTable
test_class.declarator: rootMetaTable
test_class.modifier: private
test_class.original_string: private NetworkTable rootMetaTable;
test_class.type: NetworkTable
test_class.var_name: rootMetaTable
test_class.declarator: generator
test_class.modifier: private
test_class.original_string: private TabGenerator generator;
test_class.type: TabGenerator
test_class.var_name: generator
test_class.declarator: components
test_class.modifier: private
test_class.original_string: private Components components;
test_class.type: Components
test_class.var_name: components
test_class.file: plugins/networktables/src/test/java/edu/wpi/first/shuffleboard/plugin/networktables/TabGeneratorTest.java
test_class.identifier: TabGeneratorTest
test_case.body: @Test
    public void testStop() {
      generator.start();
      rootMetaTable.getEntry(TabGenerator.TABS_ENTRY_KEY).setStringArray(new String[]{"Foo"});
      waitForNtUpdate();
      TabStructure tabs = generator.getStructure();
      assertAll(
          () -> assertEquals(1, tabs.getTabs().size()),
          () -> assertTrue(tabs.getTabs().containsKey("Foo"))
      );
  
      generator.stop();
      rootMetaTable.getEntry(TabGenerator.TABS_ENTRY_KEY).setStringArray(new String[]{"Foo", "Bar"});
      waitForNtUpdate();
      assertAll(
          () -> assertEquals(1, tabs.getTabs().size()),
          () -> assertTrue(tabs.getTabs().containsKey("Foo"))
      );
    }
test_case.class_method_signature: TabGeneratorTest.testStop()
test_case.full_signature: @Test public void testStop()
test_case.identifier: testStop
test_case.invocations: start setStringArray getEntry waitForNtUpdate getStructure assertAll assertEquals size getTabs assertTrue containsKey getTabs stop setStringArray getEntry waitForNtUpdate assertAll assertEquals size getTabs assertTrue containsKey getTabs
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testStop()
focal_class.declarator: ROOT_TABLE_NAME = "/Shuffleboard"
focal_class.modifier: public static final
focal_class.original_string: public static final String ROOT_TABLE_NAME = "/Shuffleboard";
focal_class.type: String
focal_class.var_name: ROOT_TABLE_NAME
focal_class.declarator: METADATA_TABLE_NAME = ROOT_TABLE_NAME + "/.metadata"
focal_class.modifier: public static final
focal_class.original_string: public static final String METADATA_TABLE_NAME = ROOT_TABLE_NAME + "/.metadata";
focal_class.type: String
focal_class.var_name: METADATA_TABLE_NAME
focal_class.declarator: PREF_COMPONENT_ENTRY_NAME = "PreferredComponent"
focal_class.modifier: public static final
focal_class.original_string: public static final String PREF_COMPONENT_ENTRY_NAME = "PreferredComponent";
focal_class.type: String
focal_class.var_name: PREF_COMPONENT_ENTRY_NAME
focal_class.declarator: PROPERTIES_TABLE_NAME = "Properties"
focal_class.modifier: public static final
focal_class.original_string: public static final String PROPERTIES_TABLE_NAME = "Properties";
focal_class.type: String
focal_class.var_name: PROPERTIES_TABLE_NAME
focal_class.declarator: TABS_ENTRY_KEY = "Tabs"
focal_class.modifier: public static final
focal_class.original_string: public static final String TABS_ENTRY_KEY = "Tabs";
focal_class.type: String
focal_class.var_name: TABS_ENTRY_KEY
focal_class.declarator: TABS_ENTRY_PATH = METADATA_TABLE_NAME + "/" + TABS_ENTRY_KEY
focal_class.modifier: public static final
focal_class.original_string: public static final String TABS_ENTRY_PATH = METADATA_TABLE_NAME + "/" + TABS_ENTRY_KEY;
focal_class.type: String
focal_class.var_name: TABS_ENTRY_PATH
focal_class.declarator: POSITION_ENTRY_NAME = "Position"
focal_class.modifier: public static final
focal_class.original_string: public static final String POSITION_ENTRY_NAME = "Position";
focal_class.type: String
focal_class.var_name: POSITION_ENTRY_NAME
focal_class.declarator: SIZE_ENTRY_NAME = "Size"
focal_class.modifier: public static final
focal_class.original_string: public static final String SIZE_ENTRY_NAME = "Size";
focal_class.type: String
focal_class.var_name: SIZE_ENTRY_NAME
focal_class.declarator: SELECTED_ENTRY_NAME = "Selected"
focal_class.modifier: public static final
focal_class.original_string: public static final String SELECTED_ENTRY_NAME = "Selected";
focal_class.type: String
focal_class.var_name: SELECTED_ENTRY_NAME
focal_class.declarator: TAB_TYPE = "ShuffleboardTab"
focal_class.modifier: public static final
focal_class.original_string: public static final String TAB_TYPE = "ShuffleboardTab";
focal_class.type: String
focal_class.var_name: TAB_TYPE
focal_class.declarator: LAYOUT_TYPE = "ShuffleboardLayout"
focal_class.modifier: public static final
focal_class.original_string: public static final String LAYOUT_TYPE = "ShuffleboardLayout";
focal_class.type: String
focal_class.var_name: LAYOUT_TYPE
focal_class.declarator: tabs = new TabStructure()
focal_class.modifier: private final
focal_class.original_string: private final TabStructure tabs = new TabStructure();
focal_class.type: TabStructure
focal_class.var_name: tabs
focal_class.declarator: inst
focal_class.modifier: private final
focal_class.original_string: private final NetworkTableInstance inst;
focal_class.type: NetworkTableInstance
focal_class.var_name: inst
focal_class.declarator: tabsListener
focal_class.modifier: private
focal_class.original_string: private int tabsListener;
focal_class.type: int
focal_class.var_name: tabsListener
focal_class.declarator: metadataListener
focal_class.modifier: private
focal_class.original_string: private int metadataListener;
focal_class.type: int
focal_class.var_name: metadataListener
focal_class.declarator: dataListener
focal_class.modifier: private
focal_class.original_string: private int dataListener;
focal_class.type: int
focal_class.var_name: dataListener
focal_class.declarator: componentRegistry
focal_class.modifier: private final
focal_class.original_string: private final Components componentRegistry;
focal_class.type: Components
focal_class.var_name: componentRegistry
focal_class.file: plugins/networktables/src/main/java/edu/wpi/first/shuffleboard/plugin/networktables/TabGenerator.java
focal_class.identifier: TabGenerator
focal_class.class_method_signature: TabGenerator.TabGenerator(NetworkTableInstance inst, Components componentRegistry)
focal_class.full_signature:   TabGenerator(NetworkTableInstance inst, Components componentRegistry)
focal_class.identifier: TabGenerator
focal_class.parameters: (NetworkTableInstance inst, Components componentRegistry)
focal_class.signature:  TabGenerator(NetworkTableInstance inst, Components componentRegistry)
focal_class.class_method_signature: TabGenerator.start()
focal_class.full_signature: public void start()
focal_class.identifier: start
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void start()
focal_class.class_method_signature: TabGenerator.stop()
focal_class.full_signature: public void stop()
focal_class.identifier: stop
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void stop()
focal_class.class_method_signature: TabGenerator.getStructure()
focal_class.full_signature: public TabStructure getStructure()
focal_class.identifier: getStructure
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: TabStructure
focal_class.signature: TabStructure getStructure()
focal_class.class_method_signature: TabGenerator.metadataChanged(EntryNotification event)
focal_class.full_signature: private void metadataChanged(EntryNotification event)
focal_class.identifier: metadataChanged
focal_class.modifiers: private
focal_class.parameters: (EntryNotification event)
focal_class.return: void
focal_class.signature: void metadataChanged(EntryNotification event)
focal_class.class_method_signature: TabGenerator.dataChanged(EntryNotification event)
focal_class.full_signature: private void dataChanged(EntryNotification event)
focal_class.identifier: dataChanged
focal_class.modifiers: private
focal_class.parameters: (EntryNotification event)
focal_class.return: void
focal_class.signature: void dataChanged(EntryNotification event)
focal_class.class_method_signature: TabGenerator.updateFrom(List<String> tables)
focal_class.full_signature: private void updateFrom(List<String> tables)
focal_class.identifier: updateFrom
focal_class.modifiers: private
focal_class.parameters: (List<String> tables)
focal_class.return: void
focal_class.signature: void updateFrom(List<String> tables)
focal_class.class_method_signature: TabGenerator.updateStructure(List<String> hierarchy)
focal_class.full_signature: private void updateStructure(List<String> hierarchy)
focal_class.identifier: updateStructure
focal_class.modifiers: private
focal_class.parameters: (List<String> hierarchy)
focal_class.return: void
focal_class.signature: void updateStructure(List<String> hierarchy)
focal_class.class_method_signature: TabGenerator.sourceForPath(String path)
focal_class.full_signature: private MappableSupplier<? extends DataSource<?>> sourceForPath(String path)
focal_class.identifier: sourceForPath
focal_class.modifiers: private
focal_class.parameters: (String path)
focal_class.return: MappableSupplier<? extends DataSource<?>>
focal_class.signature: MappableSupplier<? extends DataSource<?>> sourceForPath(String path)
focal_class.class_method_signature: TabGenerator.metaTable(String realPath)
focal_class.full_signature: private NetworkTable metaTable(String realPath)
focal_class.identifier: metaTable
focal_class.modifiers: private
focal_class.parameters: (String realPath)
focal_class.return: NetworkTable
focal_class.signature: NetworkTable metaTable(String realPath)
focal_class.class_method_signature: TabGenerator.realPath(String metaPath)
focal_class.full_signature: private String realPath(String metaPath)
focal_class.identifier: realPath
focal_class.modifiers: private
focal_class.parameters: (String metaPath)
focal_class.return: String
focal_class.signature: String realPath(String metaPath)
focal_class.class_method_signature: TabGenerator.preferredComponent(String realPath, Supplier<String> fallback)
focal_class.full_signature: private String preferredComponent(String realPath, Supplier<String> fallback)
focal_class.identifier: preferredComponent
focal_class.modifiers: private
focal_class.parameters: (String realPath, Supplier<String> fallback)
focal_class.return: String
focal_class.signature: String preferredComponent(String realPath, Supplier<String> fallback)
focal_class.class_method_signature: TabGenerator.properties(String realPath)
focal_class.full_signature: private Map<String, Object> properties(String realPath)
focal_class.identifier: properties
focal_class.modifiers: private
focal_class.parameters: (String realPath)
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> properties(String realPath)
focal_class.class_method_signature: TabGenerator.updateWidget(ParentModel parent, String path)
focal_class.full_signature: private void updateWidget(ParentModel parent, String path)
focal_class.identifier: updateWidget
focal_class.modifiers: private
focal_class.parameters: (ParentModel parent, String path)
focal_class.return: void
focal_class.signature: void updateWidget(ParentModel parent, String path)
focal_class.class_method_signature: TabGenerator.setSizeAndPosition(String path, ComponentModel component)
focal_class.full_signature: private void setSizeAndPosition(String path, ComponentModel component)
focal_class.identifier: setSizeAndPosition
focal_class.modifiers: private
focal_class.parameters: (String path, ComponentModel component)
focal_class.return: void
focal_class.signature: void setSizeAndPosition(String path, ComponentModel component)
focal_method.body: public void stop() {
      inst.getTable(METADATA_TABLE_NAME).removeEntryListener(tabsListener);
      inst.removeEntryListener(metadataListener);
      inst.removeEntryListener(dataListener);
    }
focal_method.class_method_signature: TabGenerator.stop()
focal_method.full_signature: public void stop()
focal_method.identifier: stop
focal_method.invocations: removeEntryListener getTable removeEntryListener removeEntryListener
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void stop()