Exemple #1
0
 internal static IDataField CreateDataField(IField field, ModuleSchema schema)
 {
     return(field switch
     {
         StringField f => new StringDataField(f),
         BooleanField f => new BooleanDataField(f),
         NumericField f => new NumericDataField(f),
         EnumField f => new EnumDataField(f),
         InstrumentField f => new InstrumentDataField(f, schema),
         OverlayField f => new OverlayDataField(f, schema),
         TempoField f => new TempoDataField(f),
         _ => throw new ArgumentException($"Can't handle {field} yet")
     });
 private IEnumerable <KeyValueViewModel> GenerateFields()
 {
     foreach (var field in Model.Container.Fields)
     {
         // TODO: A FieldViewModel?
         string value = field switch
         {
             InstrumentField _ => "Instrument",
             OverlayField f => $"Overlay; {f.FieldLists.Count} lists; {f.NestedFieldCount} nested fields",
             BooleanField _ => "Boolean",
             EnumField f => $"Enum ({f.Values.Count} values)",
             NumericField f => $"Numeric: {f.Min}-{f.Max}",
             StringField f => $"String ({f.Length})",
                  _ => throw new InvalidOperationException($"Unexpected field type: {field?.GetType()}")
         };
         yield return(new KeyValueViewModel(field.Description, value));
     }
 }
Exemple #3
0
 private IEnumerable <KeyValueViewModel> GenerateFields()
 {
     foreach (var field in Model.Container.Fields)
     {
         // TODO: A FieldViewModel?
         string value = field switch
         {
             InstrumentField _ => "Instrument",
             OverlayField f => $"Overlay; {f.FieldLists.Count} lists; {f.NestedFieldCount} nested fields",
             BooleanField _ => "Boolean",
             EnumField f => $"Enum ({f.Values.Count} values)",
             NumericField f => $"Numeric: {f.Min}-{f.Max}",
             StringField f => $"String ({f.Length})",
             TempoField f => "Tempo",
                  _ => throw new InvalidOperationException($"Unexpected field type: {field?.GetType()}")
         };
         string?valueToolTip = field switch
         {
             EnumField f => string.Join("\r\n", f.Values.Select(value => $"{f.RawNumberByName[value]}: {value}")),
             _ => null
         };
         yield return(new KeyValueViewModel($"{field.Offset}: {field.Description}", value, keyToolTip: null, valueToolTip));
     }
 }