/// <summary> /// Default constructor /// </summary> /// <param name="componentViewModel"></param> public SpecificComponentEditViewModel(ComponentViewModel componentViewModel) : base(componentViewModel) { // Check if the passed view model actually contains an IResistor if (componentViewModel.Component is T castedComponent) { _EditedComponent = castedComponent; } else { throw new ArgumentException(nameof(componentViewModel) + " does not contain an of type " + nameof(T)); } }
/// <summary> /// Constructs a MenuEditViewModel compatible with the passed <see cref="ComponentViewModel"/> and its /// <see cref="IBaseComponent"/>, if no match was found throws an exception /// </summary> /// <param name="viewModel"></param> /// <returns></returns> public static BaseComponentEditViewModel ConstructAppropriateEditViewModel(ComponentViewModel viewModel) { // Get component declaration for the view model's component and use it to search the dictionary if (_SpecificComponentEditViewModels.TryGetValue(IoC.Resolve <IComponentFactory>().GetDeclaration( viewModel.Component.GetType()).ID, out Type parameter)) { // Use activator to create an instance return(Activator.CreateInstance(parameter, viewModel) as BaseComponentEditViewModel); } throw new ArgumentException("Couldn't match a view model for the view model"); }
/// <summary> /// Default constructor /// </summary> public CurrentSourceEditViewModel(ComponentViewModel viewModel) : base(viewModel, "Produced current [A]") { }
/// <summary> /// Default constructor /// </summary> /// <param name="componentViewModel"></param> public ResistorEditViewModel(ComponentViewModel componentViewModel) : base(componentViewModel) { }
/// <summary> /// Default constructor /// </summary> /// <param name="componentViewModel"></param> public OpAmpEditViewModel(ComponentViewModel componentViewModel) : base(componentViewModel) { }
/// <summary> /// Default constructor /// </summary> public VoltageSourceEditViewModel(ComponentViewModel viewModel) : base(viewModel, "Produced DC Voltage [V]") { }
/// <summary> /// Default constructor /// </summary> /// <param name="componentViewModel"></param> public CapacitorEditViewModel(ComponentViewModel componentViewModel) : base(componentViewModel) { }
/// <summary> /// Default constructor which takes as an argument the view model of the component to edit /// </summary> /// <param name="componentViewModel"></param> public BaseComponentEditViewModel(ComponentViewModel componentViewModel) { _EditedComponentViewModel = componentViewModel; EditedComponentDeclaration = IoC.Resolve <IComponentFactory>().GetDeclaration(componentViewModel.Component.GetType()); }
/// <summary> /// Default constructor /// </summary> /// <param name="componentViewModel"></param> public ACVoltageSourceEditViewModel(ComponentViewModel componentViewModel) : base(componentViewModel, "Peak produced AC voltage [V]") { }
/// <summary> /// Default constructor /// </summary> /// <param name="viewModel"></param> /// <param name="outputHeader">Can't be null</param> public SourceEditViewModel(ComponentViewModel viewModel, string outputHeader) : base(viewModel) { OutputHeader = outputHeader ?? throw new ArgumentNullException(nameof(outputHeader)); }