Beispiel #1
0
        private void ButtonExportCategories_Click(object sender, EventArgs e)
        {
            if (listViewCategories.Items.Count == 0)
            {
                return;
            }

            using (var exportForm = new SubStationAlphaStylesCategoriesImportExport(_assaCategories, true))
            {
                exportForm.ShowDialog(this);
            }
        }
Beispiel #2
0
        private void ButtonImportCategories_Click(object sender, EventArgs e)
        {
            openFileDialogImport.Title  = LanguageSettings.Current.SubStationAlphaStylesCategoriesManager.ImportCategoriesTitle;
            openFileDialogImport.Filter = LanguageSettings.Current.SubStationAlphaStylesCategoriesManager.Categories + TemplateFilterExtension;
            if (openFileDialogImport.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    var importCategories = ImportGroupsFile(openFileDialogImport.FileName);
                    if (importCategories.Count == 0)
                    {
                        MessageBox.Show(LanguageSettings.Current.MultipleReplace.NothingToImport);
                        return;
                    }

                    using (var inputForm = new SubStationAlphaStylesCategoriesImportExport(importCategories, false))
                    {
                        if (inputForm.ShowDialog(this) == DialogResult.OK)
                        {
                            var oldCategorySelectedIndex = listViewCategories.SelectedIndices.Count == 0 ? -1 : listViewCategories.SelectedIndices[0];
                            foreach (var importCategory in importCategories.Where(Category => inputForm.ChosenCategories.Contains(Category.Name)))
                            {
                                int insertIndex       = listViewCategories.Items.Count;
                                var importedName      = importCategory.Name;
                                var overridingDefault = false;
                                if (_assaCategories.Exists(category => category.Name == importedName))
                                {
                                    var result = MessageBox.Show(string.Format(LanguageSettings.Current.SubStationAlphaStyles.OverwriteX, importedName), string.Empty, MessageBoxButtons.YesNoCancel);
                                    if (result == DialogResult.Yes)
                                    {
                                        var overriddenCategory = _assaCategories.Single(category => category.Name == importedName);
                                        overridingDefault = overriddenCategory.IsDefault;
                                        _assaCategories.Remove(overriddenCategory);
                                        insertIndex = listViewCategories.FindItemWithText(importedName, false, 0, false).Index;
                                        listViewCategories.Items.RemoveAt(insertIndex);
                                    }
                                    else if (result == DialogResult.No)
                                    {
                                        importedName        = FixDuplicateName(importedName, _assaCategories);
                                        importCategory.Name = importedName;
                                    }
                                    else
                                    {
                                        return;
                                    }
                                }

                                importCategory.IsDefault = overridingDefault;
                                _assaCategories.Insert(insertIndex, importCategory);

                                var lvi = GetCategoryListViewItem(importCategory);
                                listViewCategories.Items.Insert(insertIndex, lvi);
                            }

                            UpdateSelectedIndices(oldCategorySelectedIndex);
                        }
                    }
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message);
                    return;
                }
            }
        }