123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- using InitializerModel;
- using Microsoft.Win32;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace ConfigEditor.SubPage.EvseConfig
- {
- public class FirmwareVersionPaneltemViewModel : FirmwareUpdateModel, INotifyPropertyChanged
- {
- public FirmwareVersionPaneltemViewModel(FirmwareUpdateModel from) {
- this.Module = from.Module;
- this.Version = from.Version;
- this.FirmwareFileName = from.FirmwareFileName;
- this.DisplayFileName = System.IO.Path.GetFileName(FirmwareFileName);
- }
- public string DisplayFileName { get; set; }
- public event PropertyChangedEventHandler PropertyChanged;
- internal FirmwareUpdateModel GetFirmwareUpdateModel()
- {
- return new FirmwareUpdateModel()
- {
- Module = this.Module,
- Version = this.Version,
- FirmwareFileName = this.FirmwareFileName,
- };
- }
- public void TriggerPropertyChanged()
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Module)));
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Version)));
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(FirmwareFileName)));
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(DisplayFileName)));
- }
- }
-
-
-
- public partial class FirmwareVersionPaneltem : UserControl
- {
-
- public FirmwareVersionPaneltem(string fileFolderPath, int evseIndex)
- {
- InitializeComponent();
- var firmware = new FirmwareUpdateModel();
- Init();
-
- this.evseIndex = evseIndex;
-
- this.ViewModel = new FirmwareVersionPaneltemViewModel(firmware);
- this.DataContext = this.ViewModel;
- }
- public FirmwareVersionPaneltem(string fileFolderPath, FirmwareUpdateModel firmware, int evseIndex)
- {
- InitializeComponent();
- Init();
- this.fileFolderPath = fileFolderPath;
-
- this.evseIndex = evseIndex;
- this.ViewModel = new FirmwareVersionPaneltemViewModel(firmware);
- this.DataContext = ViewModel;
- }
- public FirmwareUpdateModel GetModel()
- {
- var toReturn = new FirmwareUpdateModel();
- toReturn.Module = ViewModel?.Module;
- toReturn.Version = ViewModel?.Version;
- toReturn.FirmwareFileName = ViewModel?.FirmwareFileName;
- if (string.IsNullOrEmpty(toReturn.Module) ||
- string.IsNullOrEmpty(toReturn.Version))
- {
- return null;
- }
- return toReturn;
- }
- private void Init()
- {
- PredefinedVersions = PredefinedVersionPair.GetWebNames();
- var selectionList = PredefinedVersions.Append(customizedString);
- this.uxPredefinedFrimware.ItemsSource = selectionList;
-
-
- }
- public event EventHandler OnDeleteClicked;
- public FirmwareUpdateModel FrimwareModel => ViewModel.GetFirmwareUpdateModel();
- private string customizedString = "Customized";
- private IEnumerable<string> PredefinedVersions;
- private FirmwareVersionPaneltemViewModel ViewModel;
- private readonly string fileFolderPath;
- private readonly int evseIndex;
- private void uxPredefinedFrimware_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- var selectedItem = uxPredefinedFrimware.SelectedItem as string;
- if (selectedItem == customizedString)
- {
- return;
- }
- if (PredefinedVersions.Contains(selectedItem))
- {
- var indexedApiVersion = EvseVersion.GetDDApiNameFromWebName(selectedItem, evseIndex);
- ViewModel.Module = indexedApiVersion;
-
- ViewModel.TriggerPropertyChanged();
-
- }
-
- }
- private void uxFrimwareKey_TextChanged(object sender, TextChangedEventArgs e)
- {
- var versionKey = uxFrimwareKey.Text;
- var apiName = EvseVersion.GetApiNameFromDDApiName(versionKey);
- var webName = PredefinedVersionPair.GetWebName(apiName);
- if (PredefinedVersions.Contains(webName))
- {
- uxPredefinedFrimware.SelectedItem = webName;
- }
- else
- {
- uxPredefinedFrimware.SelectedItem = customizedString;
- }
- }
- private void Delete_Click(object sender, RoutedEventArgs e)
- {
- OnDeleteClicked?.Invoke(this, null);
- }
- private void ReloadViewModel()
- {
- this.DataContext = null;
- this.DataContext = ViewModel;
- }
- private void File_MouseUp(object sender, MouseButtonEventArgs e)
- {
- if (!(sender is TextBox textBox))
- {
- return;
- }
- var dlg = new OpenFileDialog();
- try
- {
- dlg.InitialDirectory = fileFolderPath;
- dlg.FileName = ViewModel.DisplayFileName;
- }
- catch
- {
- }
- var dlgResult = dlg.ShowDialog();
- if (dlgResult == true)
- {
-
- ViewModel.FirmwareFileName = dlg.FileName;
- ViewModel.DisplayFileName = System.IO.Path.GetFileName(dlg.FileName);
- this.DataContext = null;
- this.DataContext = ViewModel;
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- }
|