public MainWindowViewModel()
        {
            Properties.Settings.Default.Upgrade();
            Properties.Settings.Default.StructureTemplates = Properties.Settings.Default.Properties["StructureTemplates"].DefaultValue.ToString();
            if (Properties.Settings.Default.FirstStartup)
            {
                Properties.Settings.Default.StandardColorArray  = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Appdata", "Local", "DominoPlanner", "colors" + Properties.Resources.ColorExtension);
                Properties.Settings.Default.StandardProjectPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Appdata", "Local", "DominoPlanner");
                Properties.Settings.Default.OpenProjectList     = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Appdata", "Local", "DominoPlanner", "OpenProjects.xml");
                Directory.CreateDirectory(Path.GetDirectoryName(Properties.Settings.Default.StandardColorArray));
                OpenProjectSerializer.Create();
                Properties.Settings.Default.FirstStartup = false;
            }
            Properties.Settings.Default.Save();

            while (!File.Exists(Properties.Settings.Default.StandardColorArray))
            {
                Errorhandler.RaiseMessage("Please create a defaultcolortable.", "Missing Color Table", Errorhandler.MessageType.Info);
                new SetStandardV().ShowDialog();
            }

            NewFieldStruct       = new RelayCommand(o => { NewFieldStructure(); });
            MenuSetStandard      = new RelayCommand(o => { new SetStandardV().ShowDialog(); });
            AddExistingProject   = new RelayCommand(o => { AddProject_Exists(); });
            AddExistingItem      = new RelayCommand(o => { AddItem_Exists(); });
            NewProject           = new RelayCommand(o => { CreateNewProject(); });
            SaveAll              = new RelayCommand(o => { SaveAllOpen(); });
            SaveCurrentOpen      = new RelayCommand(o => { SaveCurrentOpenProject(); });
            FileListClickCommand = new RelayCommand(o => { OpenItemFromPath(o); });
            Tabs          = new ObservableCollection <TabItem>();
            Workspace.del = UpdateReference;
            loadProjectList();
        }
예제 #2
0
        internal async void AfterStartupChecks()
        {
            if (FirstStartup)
            {
                UserSettings.Instance.StandardColorArray  = Path.Combine(UserSettings.AppDataPath, "colors.DColor");
                UserSettings.Instance.StandardProjectPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "DominoPlanner");
                UserSettings.Instance.OpenProjectList     = Path.Combine(UserSettings.AppDataPath, "OpenProjects.xml");
                if (!File.Exists(UserSettings.Instance.OpenProjectList))
                {
                    File.Create(UserSettings.Instance.OpenProjectList).Close();
                }
                UserSettings.Instance.StructureTemplates = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "Structures.xml");
                Directory.CreateDirectory(UserSettings.Instance.StandardProjectPath);
                Directory.CreateDirectory(UserSettings.AppDataPath);
                OpenProjectSerializer.Create();
                FirstStartup = false;
            }

            while (!File.Exists(UserSettings.Instance.StandardColorArray))
            {
                await Errorhandler.RaiseMessage(_("Please create a default color table."), _("Missing Color Table"), Errorhandler.MessageType.Info);

                await new SetStandardV().ShowDialogWithParent <MainWindow>();
            }
            LoadProjectList();
        }
        /// <summary>
        /// Projektliste laden
        /// </summary>
        private void loadProjectList()
        {
            Projects = new ObservableCollection <AssemblyNodeVM>();
            List <OpenProject> OpenProjects = OpenProjectSerializer.GetOpenProjects();

            if (OpenProjects != null)
            {
                foreach (OpenProject curOP in OpenProjects)
                {
                    loadProject(curOP);
                }
            }
            else
            {
                Errorhandler.RaiseMessage("Error loading opened projects!", "Error", Errorhandler.MessageType.Error);
                OpenProjectSerializer.Create();
            }
        }