// Path: src/main/java/vdm/SkipMode.java
// public enum SkipMode {
// 
//     SKIP_AHEAD("Standard: Use SkipAhead VDM factory"),
//     NO_SKIPS("No tick skipping (older SrcDemo\u00B2 workaround)"),
//     DEMO_TIMESCALE("Run demo_timescale before each segment");
// 
//     private String description;
// 
//     SkipMode(String description) {
//         this.description = description;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     @Override
//     public String toString() {
//         return description;
//     }
// 
// }
// 
// Path: src/main/java/vdm/Tick/Exec.java
// public class Exec extends AbstractExec {
//     public static final String Text = "Add Exec";
//     public static final String Segment = "exec";
//     public static final String Template = "exec spec_player";
//     public static final String QuitTemplate = "exec quit";
// 
//     public Exec(File demoFile, String demoname, int start, String template) {
//         super(demoFile, demoname, start, start, Segment, template);
//     }
// 
//     public String getCommand(int count) {
//         return getTemplate();
//     }
// }
// 
// Path: src/main/java/vdm/Tick/ExecRecord.java
// public class ExecRecord extends AbstractExec {
//     public static final String Segment = "exec_record";
//     public static final String Template = "mirv_camimport start \"{{BVH_PATH}}\"";
//     public static final String Text = "Add Exec + Record";
// 
//     public ExecRecord(File demoFile, String demoname, int start, int end, String template) throws NumberFormatException {
//         super(demoFile, demoname, start, end, Segment, template);
//         if (start >= end) {
//             throw new NumberFormatException(String.format("end tick (%d) must be greater than start tick (%d)", end, start));
//         }
//     }
// 
//     public String getCommand(int count) {
//         return "exec " + Util.stripFilenameExtension(getDemoFile().getName()) + "_" + count + "; startrecording";
//     }
// }
// 
// Path: src/main/java/vdm/Tick/Record.java
// public class Record extends Tick {
//     public static final String Segment = "record";
//     public static final String Template = "N/A";
//     public static final String Text = "Add Record";
// 
//     public Record(File demoFile, String demoname, int start, int end) throws NumberFormatException {
//         super(demoFile, demoname, start, end, Segment, Template);
//         if (start >= end) {
//             throw new NumberFormatException(String.format("end tick (%d) must be greater than start tick (%d)", end, start));
//         }
//     }
// }


import vdm.SkipMode;
import vdm.Tick.Exec;
import vdm.Tick.ExecRecord;
import vdm.Tick.Record;
import javax.swing.*;
import java.awt.*;
        gbc_scrollPane_1.insets = new Insets(0, 5, 5, 5);
        gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
        gbc_scrollPane_1.gridwidth = 7;
        gbc_scrollPane_1.gridx = 0;
        gbc_scrollPane_1.gridy = 4;
        add(scrollPane_1, gbc_scrollPane_1);

        tableTicks = new JTable();
        scrollPane_1.setViewportView(tableTicks);

        panelButtonsLeft = new JPanel();
        GridBagConstraints gbc_panelButtonsLeft = new GridBagConstraints();
        gbc_panelButtonsLeft.gridwidth = 7;
        gbc_panelButtonsLeft.anchor = GridBagConstraints.WEST;
        gbc_panelButtonsLeft.insets = new Insets(0, 0, 0, 0);
        gbc_panelButtonsLeft.gridx = 0;
        gbc_panelButtonsLeft.gridy = 5;
        add(panelButtonsLeft, gbc_panelButtonsLeft);

        btnCreateVdmFiles = new JButton("Create VDM Files");
        panelButtonsLeft.add(btnCreateVdmFiles);

        btnDeleteVdmFiles = new JButton("Delete VDM Files...");
        panelButtonsLeft.add(btnDeleteVdmFiles);

        lblSkipMode = new JLabel("Skip Mode:");
        lblSkipMode.setToolTipText("Select how tick skipping is handled by the VDM generator");
        panelButtonsLeft.add(lblSkipMode);

        cmbSkipMode = new JComboBox<>();
// Path: src/main/java/vdm/SkipMode.java
// public enum SkipMode {
// 
//     SKIP_AHEAD("Standard: Use SkipAhead VDM factory"),
//     NO_SKIPS("No tick skipping (older SrcDemo\u00B2 workaround)"),
//     DEMO_TIMESCALE("Run demo_timescale before each segment");
// 
//     private String description;
// 
//     SkipMode(String description) {
//         this.description = description;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     @Override
//     public String toString() {
//         return description;
//     }
// 
// }
// 
// Path: src/main/java/vdm/Tick/Exec.java
// public class Exec extends AbstractExec {
//     public static final String Text = "Add Exec";
//     public static final String Segment = "exec";
//     public static final String Template = "exec spec_player";
//     public static final String QuitTemplate = "exec quit";
// 
//     public Exec(File demoFile, String demoname, int start, String template) {
//         super(demoFile, demoname, start, start, Segment, template);
//     }
// 
//     public String getCommand(int count) {
//         return getTemplate();
//     }
// }
// 
// Path: src/main/java/vdm/Tick/ExecRecord.java
// public class ExecRecord extends AbstractExec {
//     public static final String Segment = "exec_record";
//     public static final String Template = "mirv_camimport start \"{{BVH_PATH}}\"";
//     public static final String Text = "Add Exec + Record";
// 
//     public ExecRecord(File demoFile, String demoname, int start, int end, String template) throws NumberFormatException {
//         super(demoFile, demoname, start, end, Segment, template);
//         if (start >= end) {
//             throw new NumberFormatException(String.format("end tick (%d) must be greater than start tick (%d)", end, start));
//         }
//     }
// 
//     public String getCommand(int count) {
//         return "exec " + Util.stripFilenameExtension(getDemoFile().getName()) + "_" + count + "; startrecording";
//     }
// }
// 
// Path: src/main/java/vdm/Tick/Record.java
// public class Record extends Tick {
//     public static final String Segment = "record";
//     public static final String Template = "N/A";
//     public static final String Text = "Add Record";
// 
//     public Record(File demoFile, String demoname, int start, int end) throws NumberFormatException {
//         super(demoFile, demoname, start, end, Segment, Template);
//         if (start >= end) {
//             throw new NumberFormatException(String.format("end tick (%d) must be greater than start tick (%d)", end, start));
//         }
//     }
// }


// Path: src/main/java/ui/DemoEditorView.java
import vdm.SkipMode;
import vdm.Tick.Exec;
import vdm.Tick.ExecRecord;
import vdm.Tick.Record;
import javax.swing.*;
import java.awt.*;

        gbc_scrollPane_1.insets = new Insets(0, 5, 5, 5);
        gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
        gbc_scrollPane_1.gridwidth = 7;
        gbc_scrollPane_1.gridx = 0;
        gbc_scrollPane_1.gridy = 4;
        add(scrollPane_1, gbc_scrollPane_1);

        tableTicks = new JTable();
        scrollPane_1.setViewportView(tableTicks);

        panelButtonsLeft = new JPanel();
        GridBagConstraints gbc_panelButtonsLeft = new GridBagConstraints();
        gbc_panelButtonsLeft.gridwidth = 7;
        gbc_panelButtonsLeft.anchor = GridBagConstraints.WEST;
        gbc_panelButtonsLeft.insets = new Insets(0, 0, 0, 0);
        gbc_panelButtonsLeft.gridx = 0;
        gbc_panelButtonsLeft.gridy = 5;
        add(panelButtonsLeft, gbc_panelButtonsLeft);

        btnCreateVdmFiles = new JButton("Create VDM Files");
        panelButtonsLeft.add(btnCreateVdmFiles);

        btnDeleteVdmFiles = new JButton("Delete VDM Files...");
        panelButtonsLeft.add(btnDeleteVdmFiles);

        lblSkipMode = new JLabel("Skip Mode:");
        lblSkipMode.setToolTipText("Select how tick skipping is handled by the VDM generator");
        panelButtonsLeft.add(lblSkipMode);

        cmbSkipMode = new JComboBox<>();
        cmbSkipMode.setModel(new DefaultComboBoxModel<>(SkipMode.values()));