To answer the OP question, the LabVIEW default dashboard does not use a SendableChooser. Rather it requires an array of strings in SmartDashboard called "Auto List" and the user's choice is a single string "Auto Selector". The difficulty is that SmartDashboard.java has many methods that are static, but putStringArray() isn't one of them. Here is a starting point.
Code:
public class Robot extends IterativeRobot {
SmartDashboard dash = new SmartDashboard();//needed for non-static methods
String AutoModeSelected;
public void robotInit() {
dash.putStringArray("Auto List",ArrayOfAutonomousStrings);
}
public void autonomousInit() {
String AutoModeSelected = dash.getString("Auto Selector");
}
}
I will say in 2016 the major problem with SmartDashboard.exe is that it independently resolved the RobotIP using mDNS, when the DriverStation program resolved using DNS. mDNS had a tendency not to work often, or take a long time to resolve. The LabVIEW dashboard for sometime, has actually just been given the RobotIP address through TCP port 1741 with the DriverStation program. The option to chose mDNS or the static 10.XX.YY.2 as a way to resolve RobotIP in the SmartDashboard.exe is gone, or at least I can't find it. So SMartDashboard.exe might be using that TCP port data.