예제 #1
0
 void ISendable.InitSendable(ISendableBuilder builder)
 {
     builder.SmartDashboardType = "String Chooser";
     builder.GetEntry(INSTANCE).SetDouble(m_instance);
     builder.AddStringProperty(DEFAULT, () => m_defaultChoice, null);
     builder.AddStringArrayProperty(OPTIONS, () => m_map.Keys.ToArray(), null);
     builder.AddStringProperty(ACTIVE, () =>
     {
         lock (m_mutex)
         {
             if (m_selected != null)
             {
                 return(m_selected);
             }
             else
             {
                 return(m_defaultChoice);
             }
         }
     }, null);
     lock (m_mutex)
     {
         m_activeEntries.Add(builder.GetEntry(ACTIVE));
     }
     builder.AddStringProperty(SELECTED, null, val =>
     {
         lock (m_mutex)
         {
             m_selected = val;
             foreach (var entry in m_activeEntries)
             {
                 entry.SetString(val);
             }
         }
     });
 }