test_class.file: app/src/test/java/edu/wpi/first/shuffleboard/app/MainWindowControllerTest.java
test_class.identifier: MainWindowControllerTest
test_class.superclass: extends ApplicationTest
test_case.body: @Test
    @Tag("NonHeadlessTests")
    public void testNetworkTableSourceContextMenu() {
      NetworkTableInstance inst = NetworkTableInstance.getDefault();
      inst.getEntry("/testSourceContextMenu").setString("value");
      inst.waitForEntryListenerQueue(-1.0);
      WaitForAsyncUtils.waitForFxEvents();
  
      rightClickOn(TextMatchers.hasText("testSourceContextMenu"));
      Node showAsText = lookup(TextMatchers.hasText("Show as: Text View")).query();
      assertNotNull(showAsText);
      clickOn(showAsText);
  
      WidgetTile tile = lookup(".tile").query();
      assertNotNull(tile);
      Widget widget = tile.getContent();
      DataSource source = widget.getSources().get(0);
      assertTrue(source.isActive());
      assertEquals("testSourceContextMenu", source.getName());
      assertEquals("value",source.getData());
    }
test_case.class_method_signature: MainWindowControllerTest.testNetworkTableSourceContextMenu()
test_case.full_signature: @Test @Tag("NonHeadlessTests") public void testNetworkTableSourceContextMenu()
test_case.identifier: testNetworkTableSourceContextMenu
test_case.invocations: getDefault setString getEntry waitForEntryListenerQueue waitForFxEvents rightClickOn hasText query lookup hasText assertNotNull clickOn query lookup assertNotNull getContent get getSources assertTrue isActive assertEquals getName assertEquals getData
test_case.modifiers: @Test @Tag("NonHeadlessTests") public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNetworkTableSourceContextMenu()
focal_class.declarator: log = Logger.getLogger(MainWindowController.class.getName())
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = Logger.getLogger(MainWindowController.class.getName());
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: recordingMenu
focal_class.modifier: @FXML
    private
focal_class.original_string: @FXML
    private MenuItem recordingMenu;
focal_class.type: MenuItem
focal_class.var_name: recordingMenu
focal_class.declarator: root
focal_class.modifier: @FXML
    private
focal_class.original_string: @FXML
    private Pane root;
focal_class.type: Pane
focal_class.var_name: root
focal_class.declarator: contentRoot
focal_class.modifier: @FXML
    private
focal_class.original_string: @FXML
    private Pane contentRoot;
focal_class.type: Pane
focal_class.var_name: contentRoot
focal_class.declarator: leftDrawer
focal_class.modifier: @FXML
    private
focal_class.original_string: @FXML
    private Pane leftDrawer;
focal_class.type: Pane
focal_class.var_name: leftDrawer
focal_class.declarator: dashboard
focal_class.modifier: @FXML
    private
focal_class.original_string: @FXML
    private DashboardTabPane dashboard;
focal_class.type: DashboardTabPane
focal_class.var_name: dashboard
focal_class.declarator: pluginDialog = new PluginDialog()
focal_class.modifier: private final
focal_class.original_string: private final PluginDialog pluginDialog = new PluginDialog();
focal_class.type: PluginDialog
focal_class.var_name: pluginDialog
focal_class.declarator: aboutDialog = new AboutDialog()
focal_class.modifier: private final
focal_class.original_string: private final AboutDialog aboutDialog = new AboutDialog();
focal_class.type: AboutDialog
focal_class.var_name: aboutDialog
focal_class.declarator: exportRecordingDialog = new ExportRecordingDialog()
focal_class.modifier: private final
focal_class.original_string: private final ExportRecordingDialog exportRecordingDialog = new ExportRecordingDialog();
focal_class.type: ExportRecordingDialog
focal_class.var_name: exportRecordingDialog
focal_class.declarator: prefsDialog = new PrefsDialog()
focal_class.modifier: private final
focal_class.original_string: private final PrefsDialog prefsDialog = new PrefsDialog();
focal_class.type: PrefsDialog
focal_class.var_name: prefsDialog
focal_class.declarator: saveFileHandler = new SaveFileHandler()
focal_class.modifier: private final
focal_class.original_string: private final SaveFileHandler saveFileHandler = new SaveFileHandler();
focal_class.type: SaveFileHandler
focal_class.var_name: saveFileHandler
focal_class.declarator: stylesheets
        = EasyBind.map(AppPreferences.getInstance().themeProperty(), Theme::getStyleSheets)
focal_class.modifier: private final
focal_class.original_string: private final ObservableValue<List<String>> stylesheets
        = EasyBind.map(AppPreferences.getInstance().themeProperty(), Theme::getStyleSheets);
focal_class.type: ObservableValue<List<String>>
focal_class.var_name: stylesheets
focal_class.file: app/src/main/java/edu/wpi/first/shuffleboard/app/MainWindowController.java
focal_class.identifier: MainWindowController
focal_class.class_method_signature: MainWindowController.initialize()
focal_class.full_signature: @FXML private void initialize()
focal_class.identifier: initialize
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void initialize()
focal_class.class_method_signature: MainWindowController.tearDownPluginWhenUnloaded(Plugin plugin)
focal_class.full_signature: private void tearDownPluginWhenUnloaded(Plugin plugin)
focal_class.identifier: tearDownPluginWhenUnloaded
focal_class.modifiers: private
focal_class.parameters: (Plugin plugin)
focal_class.return: void
focal_class.signature: void tearDownPluginWhenUnloaded(Plugin plugin)
focal_class.class_method_signature: MainWindowController.setLeftDrawerCallbacks()
focal_class.full_signature: private void setLeftDrawerCallbacks()
focal_class.identifier: setLeftDrawerCallbacks
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void setLeftDrawerCallbacks()
focal_class.class_method_signature: MainWindowController.tearDown(Plugin plugin)
focal_class.full_signature: private void tearDown(Plugin plugin)
focal_class.identifier: tearDown
focal_class.modifiers: private
focal_class.parameters: (Plugin plugin)
focal_class.return: void
focal_class.signature: void tearDown(Plugin plugin)
focal_class.class_method_signature: MainWindowController.setDashboard(DashboardTabPane dashboard)
focal_class.full_signature: private void setDashboard(DashboardTabPane dashboard)
focal_class.identifier: setDashboard
focal_class.modifiers: private
focal_class.parameters: (DashboardTabPane dashboard)
focal_class.return: void
focal_class.signature: void setDashboard(DashboardTabPane dashboard)
focal_class.class_method_signature: MainWindowController.setDashboard(DashboardData dashboardData)
focal_class.full_signature: public void setDashboard(DashboardData dashboardData)
focal_class.identifier: setDashboard
focal_class.modifiers: public
focal_class.parameters: (DashboardData dashboardData)
focal_class.return: void
focal_class.signature: void setDashboard(DashboardData dashboardData)
focal_class.class_method_signature: MainWindowController.close()
focal_class.full_signature: @FXML public void close()
focal_class.identifier: close
focal_class.modifiers: @FXML public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: MainWindowController.getData()
focal_class.full_signature: private DashboardData getData()
focal_class.identifier: getData
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: DashboardData
focal_class.signature: DashboardData getData()
focal_class.class_method_signature: MainWindowController.save()
focal_class.full_signature: @FXML public void save()
focal_class.identifier: save
focal_class.modifiers: @FXML public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void save()
focal_class.class_method_signature: MainWindowController.saveAs()
focal_class.full_signature: @FXML private void saveAs()
focal_class.identifier: saveAs
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void saveAs()
focal_class.class_method_signature: MainWindowController.newLayout()
focal_class.full_signature: @FXML public void newLayout()
focal_class.identifier: newLayout
focal_class.modifiers: @FXML public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void newLayout()
focal_class.class_method_signature: MainWindowController.load()
focal_class.full_signature: @FXML public void load()
focal_class.identifier: load
focal_class.modifiers: @FXML public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void load()
focal_class.class_method_signature: MainWindowController.load(File saveFile)
focal_class.full_signature: public void load(File saveFile)
focal_class.identifier: load
focal_class.modifiers: public
focal_class.parameters: (File saveFile)
focal_class.return: void
focal_class.signature: void load(File saveFile)
focal_class.class_method_signature: MainWindowController.showPrefs()
focal_class.full_signature: @FXML public void showPrefs()
focal_class.identifier: showPrefs
focal_class.modifiers: @FXML public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void showPrefs()
focal_class.class_method_signature: MainWindowController.toggleRecording()
focal_class.full_signature: @FXML private void toggleRecording()
focal_class.identifier: toggleRecording
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void toggleRecording()
focal_class.class_method_signature: MainWindowController.loadPlayback()
focal_class.full_signature: @FXML private void loadPlayback()
focal_class.identifier: loadPlayback
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void loadPlayback()
focal_class.class_method_signature: MainWindowController.exportRecordings()
focal_class.full_signature: @FXML private void exportRecordings()
focal_class.identifier: exportRecordings
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void exportRecordings()
focal_class.class_method_signature: MainWindowController.closeCurrentTab()
focal_class.full_signature: @FXML private void closeCurrentTab()
focal_class.identifier: closeCurrentTab
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void closeCurrentTab()
focal_class.class_method_signature: MainWindowController.showTabPrefs()
focal_class.full_signature: @FXML private void showTabPrefs()
focal_class.identifier: showTabPrefs
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void showTabPrefs()
focal_class.class_method_signature: MainWindowController.newTab()
focal_class.full_signature: @FXML private void newTab()
focal_class.identifier: newTab
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void newTab()
focal_class.class_method_signature: MainWindowController.showPlugins()
focal_class.full_signature: @FXML private void showPlugins()
focal_class.identifier: showPlugins
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void showPlugins()
focal_class.class_method_signature: MainWindowController.showAboutDialog()
focal_class.full_signature: @FXML private void showAboutDialog()
focal_class.identifier: showAboutDialog
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void showAboutDialog()
focal_class.class_method_signature: MainWindowController.openDocsInBrowser()
focal_class.full_signature: @FXML private void openDocsInBrowser()
focal_class.identifier: openDocsInBrowser
focal_class.modifiers: @FXML private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void openDocsInBrowser()
focal_method.body: private DashboardData getData() {
      return new DashboardData(
          dashboard,
          new WindowGeometry(root.getScene().getWindow())
      );
    }
focal_method.class_method_signature: MainWindowController.getData()
focal_method.full_signature: private DashboardData getData()
focal_method.identifier: getData
focal_method.invocations: getWindow getScene
focal_method.modifiers: private
focal_method.parameters: ()
focal_method.return: DashboardData
focal_method.signature: DashboardData getData()