private void SetupControls()
{
var dataModelProps = _layerEditorViewModel.DataModelProps;
Name = _property + ":";
// Populate target combobox
Targets = new BindableCollection<GeneralHelpers.PropertyCollection>
{
new GeneralHelpers.PropertyCollection {Display = "None"}
};
Targets.AddRange(dataModelProps.Where(p => (p.Type == "Int32") || (p.Type == "Single")));
// Populate sources combobox
Sources = new BindableCollection<GeneralHelpers.PropertyCollection>();
Sources.AddRange(dataModelProps.Where(p => (p.Type == "Int32") || (p.Type == "Single")));
// Preselect according to the model
SelectedTarget = dataModelProps.FirstOrDefault(p => p.Path == Proposed.GameProperty);
SelectedSource = dataModelProps.FirstOrDefault(p => p.Path == Proposed.PercentageProperty);
LayerPropertyType = Proposed.LayerPropertyType;
// Populate the extra options combobox
switch (_property)
{
case "Width":
LayerPropertyOptions = new BindableCollection<LayerPropertyOptions>
{
Artemis.Profiles.Layers.Models.LayerPropertyOptions.LeftToRight,
Artemis.Profiles.Layers.Models.LayerPropertyOptions.RightToLeft
};
break;
case "Height":
LayerPropertyOptions = new BindableCollection<LayerPropertyOptions>
{
Artemis.Profiles.Layers.Models.LayerPropertyOptions.Downwards,
Artemis.Profiles.Layers.Models.LayerPropertyOptions.Upwards
};
break;
case "Opacity":
LayerPropertyOptions = new BindableCollection<LayerPropertyOptions>
{
Artemis.Profiles.Layers.Models.LayerPropertyOptions.Increase,
Artemis.Profiles.Layers.Models.LayerPropertyOptions.Decrease
};
break;
}
UserSourceIsVisible = LayerPropertyType == LayerPropertyType.PercentageOf;
SourcesIsVisible = LayerPropertyType == LayerPropertyType.PercentageOfProperty;
// Set up a default for SelectedTarget if it was null
if (SelectedTarget.Display == null)
SelectedTarget = Targets.FirstOrDefault();
// Set up a default for the extra option if it fell outside the range
if (!LayerPropertyOptions.Contains(Proposed.LayerPropertyOptions))
Proposed.LayerPropertyOptions = LayerPropertyOptions.FirstOrDefault();
}