public CreateProjectCommand(UserInterface userInterface, OpenedProjects openedProjects) : base(userInterface) { if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } this.openedProjects = openedProjects; }
public CloseCurrentProjectCommand(UserInterface userInterface, OpenedProjects openedProjects) : base(userInterface) { if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } this.openedProjects = openedProjects; this.openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged; }
public PasteCommand(UserInterface userInterface, OpenedProjects openedProjects) : base(userInterface) { if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } projectContext = openedProjects.CurrentProject; openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged; }
public MainWindowViewModel(UserInterface userInterface, StatusInfo statusInfo, OpenedProjects openedProjects) { if (userInterface == null) { throw new ArgumentNullException(nameof(userInterface)); } if (statusInfo == null) { throw new ArgumentNullException(nameof(statusInfo)); } if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } this.userInterface = userInterface; this.statusInfo = statusInfo; this.openedProjects = openedProjects; // Create commands SelectAllFlagsCommand = new SelectAllFlagsCommand(userInterface, openedProjects); SelectNoFlagsCommand = new SelectNoFlagsCommand(userInterface, openedProjects); CopyCommand = new CopyCommand(userInterface, openedProjects); PasteCommand = new PasteCommand(userInterface, openedProjects); CreateProjectCommand = new CreateProjectCommand(userInterface, openedProjects); CloseCurrentProjectCommand = new CloseCurrentProjectCommand(userInterface, openedProjects); DigitCommand = new DigitCommand(userInterface, openedProjects); // Initialize everything IEnumerable <ProjectViewModel> projects = openedProjects .Select(x => new ProjectViewModel(userInterface, statusInfo, openedProjects, x)); Projects = new ObservableCollection <ProjectViewModel>(projects); SelectedProject = Projects.FirstOrDefault(); mainTitle = new MainTitle(openedProjects); mainTitle.Changed += HandleMainTitleChanged; Title = mainTitle.ToString(); this.openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged; this.openedProjects.ProjectCreated += HandleProjectCreated; this.openedProjects.ProjectClosed += HandleProjectClosed; IsNoTabInfoVisible = Projects.Count == 0; }
public OpenAssemblyCommand(UserInterface userInterface, OpenedProjects openedProjects) : base(userInterface) { if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } projectContext = openedProjects.CurrentProject; openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged; if (projectContext != null) { projectContext.Loaded += HandleProjectLoaded; projectContext.Unloaded += HandleProjectUnloaded; } }
public MainTitle(OpenedProjects openedProjects) { if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } this.openedProjects = openedProjects; titleBase = BuildTitleBase(); if (openedProjects.CurrentProject != null) { openedProjects.CurrentProject.Loaded += HandleProjectLoaded; openedProjects.CurrentProject.Unloaded += HandleProjectUnloaded; } this.openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged; }
public ProjectViewModel(UserInterface userInterface, StatusInfo statusInfo, OpenedProjects openedProjects, ProjectContext projectContext) { if (userInterface == null) { throw new ArgumentNullException(nameof(userInterface)); } if (statusInfo == null) { throw new ArgumentNullException(nameof(statusInfo)); } if (openedProjects == null) { throw new ArgumentNullException(nameof(openedProjects)); } if (projectContext == null) { throw new ArgumentNullException(nameof(projectContext)); } ProjectContext = projectContext; // Create view models. FlagListViewModel = new FlagListViewModel(projectContext, statusInfo, userInterface); MainFooterViewModel = new MainFooterViewModel(projectContext, statusInfo, userInterface); MainHeaderViewModel = new MainHeaderViewModel(projectContext, statusInfo, userInterface); // Create commands OpenAssemblyCommand = new OpenAssemblyCommand(userInterface, projectContext); CloseProjectCommand = new CloseProjectCommand(userInterface, openedProjects); // Initialize everything ProjectContext.Loaded += HandleProjectLoaded; ProjectContext.Unloaded += HandleProjectUnloaded; UpdateOpenPanelVisibility(); UpdateHeader(); }
public void Run() { UserInterface userInterface = new UserInterface(); try { StatusInfo statusInfo = new StatusInfo(); OpenedProjects openedProjects = new OpenedProjects(); MainWindow mainWindow = new MainWindow { DataContext = new MainWindowViewModel(userInterface, statusInfo, openedProjects) }; mainWindow.Show(); ConfigurationEnumProvider enumProvider = new ConfigurationEnumProvider(); openedProjects.LoadFrom(enumProvider); } catch (Exception ex) { userInterface.DisplayError(ex); } }