From 8da5661bf87454f90b21b04658cb0507a2866ee0 Mon Sep 17 00:00:00 2001 From: 66945 <54561572+66945@users.noreply.github.com> Date: Tue, 28 Feb 2023 12:36:52 -0700 Subject: [PATCH] Buncha UI Stuffs --- .../robot/commands/PlaybackChooser.java | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/src/main/java/frc4388/robot/commands/PlaybackChooser.java b/src/main/java/frc4388/robot/commands/PlaybackChooser.java index a86c38e..af7f4ac 100644 --- a/src/main/java/frc4388/robot/commands/PlaybackChooser.java +++ b/src/main/java/frc4388/robot/commands/PlaybackChooser.java @@ -5,10 +5,9 @@ import java.util.ArrayList; import java.util.HashMap; import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets; +import edu.wpi.first.wpilibj.shuffleboard.ComplexWidget; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; -import edu.wpi.first.wpilibj.shuffleboard.WidgetType; import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.InstantCommand; import frc4388.robot.subsystems.SwerveDrive; @@ -16,9 +15,11 @@ import frc4388.robot.subsystems.SwerveDrive; public class PlaybackChooser { private final ArrayList> m_choosers = new ArrayList<>(); private SendableChooser m_playback = null; + private final ArrayList m_widgets = new ArrayList<>(); private final HashMap m_commandPool = new HashMap<>(); - - private final File m_dir = new File("/home/lvuser/autos/"); + + private final File m_dir = new File("/home/lvuser/autos/"); + private int m_cmdNum = 0; private final SwerveDrive m_swerve; // commands @@ -34,11 +35,14 @@ public class PlaybackChooser { } public PlaybackChooser buildDisplay() { - appendCommand(); + for (int i = 0; i < 10; i++) { + appendCommand(); + } m_playback = m_choosers.get(0); + nextChooser(); Shuffleboard.getTab("Auto Chooser") - .add("Add Sequence", new InstantCommand(() -> appendCommand())) + .add("Add Sequence", new InstantCommand(() -> {})) .withPosition(4, 0); return this; } @@ -46,29 +50,35 @@ public class PlaybackChooser { // This will be bound to a button for the time being public void appendCommand() { var chooser = new SendableChooser(); - chooser.setDefaultOption("No Auto", m_noAuto); - for (String auto : m_dir.list()) { - m_playback.addOption(auto, new JoystickPlayback(m_swerve, auto)); - } - for (var cmd_name : m_commandPool.keySet()) { - chooser.addOption(cmd_name, m_commandPool.get(cmd_name)); - } m_choosers.add(chooser); - Shuffleboard.getTab("Auto Chooser") + ComplexWidget widget = Shuffleboard.getTab("Auto Chooser") .add("Command: " + m_choosers.size(), chooser) .withSize(4, 1) .withPosition(0, m_choosers.size() - 1) .withWidget(BuiltInWidgets.kSplitButtonChooser); + + m_widgets.add(widget); + } + + public void nextChooser() { + SendableChooser chooser = m_choosers.get(m_cmdNum++); + + for (String auto : m_dir.list()) { + chooser.addOption(auto, new JoystickPlayback(m_swerve, auto)); + } + for (var cmd_name : m_commandPool.keySet()) { + chooser.addOption(cmd_name, m_commandPool.get(cmd_name)); + } } public Command getCommand() { Command command = m_playback.getSelected(); command = command == null ? m_noAuto : command.asProxy(); - Command[] commands = new Command[m_choosers.size() - 1]; - for (int i = 0; i < m_choosers.size()-1; i++) { + Command[] commands = new Command[m_cmdNum - 1]; + for (int i = 0; i < m_cmdNum - 1; i++) { Command command2 = m_choosers.get(i + 1).getSelected(); command2 = command2 == null ? m_noAuto : command2.asProxy();