public CreateProjectCommand(UserInterface userInterface, OpenedProjects openedProjects)
     : base(userInterface)
 {
     if (openedProjects == null)
     {
         throw new ArgumentNullException(nameof(openedProjects));
     }
     this.openedProjects = openedProjects;
 }
Ejemplo n.º 2
0
        public CloseCurrentProjectCommand(UserInterface userInterface, OpenedProjects openedProjects)
            : base(userInterface)
        {
            if (openedProjects == null)
            {
                throw new ArgumentNullException(nameof(openedProjects));
            }

            this.openedProjects = openedProjects;
            this.openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged;
        }
Ejemplo n.º 3
0
        public PasteCommand(UserInterface userInterface, OpenedProjects openedProjects)
            : base(userInterface)
        {
            if (openedProjects == null)
            {
                throw new ArgumentNullException(nameof(openedProjects));
            }

            projectContext = openedProjects.CurrentProject;
            openedProjects.CurrentProjectChanged += HandleCurrentProjectChanged;
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        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);
            }
        }