private void ToggleConsistencyCheck(string ruleId)
        {
            var items = SelectedTableEntries.ToArray();

            if (!items.Any())
            {
                return;
            }

            var first = items.First();

            if (first == null)
            {
                return;
            }

            var newValue = !first.IsRuleEnabled[ruleId];

            foreach (var item in items)
            {
                if (!item.CanEdit(item.NeutralLanguage.CultureKey))
                {
                    return;
                }

                item.IsRuleEnabled[ruleId] = newValue;
            }
        }
        private void ToggleInvariant()
        {
            var items = SelectedTableEntries.ToArray();

            if (!items.Any())
            {
                return;
            }

            var first = items.First();

            if (first == null)
            {
                return;
            }

            var newValue = !first.IsInvariant;

            foreach (var item in items)
            {
                if (!item.CanEdit(item.NeutralLanguage.CultureKey))
                {
                    return;
                }

                item.IsInvariant = newValue;
            }
        }
Example #3
0
        private bool CanDelete([CanBeNull] DataGrid dataGrid)
        {
            if (dataGrid == null)
            {
                return(false);
            }

            return((dataGrid.SelectionUnit == DataGridSelectionUnit.CellOrRowHeader) && dataGrid.SelectedCells.Any(cellInfo => cellInfo.IsOfColumnType(ColumnType.Comment, ColumnType.Language)) ||
                   SelectedTableEntries.Any());
        }
        private void DeleteSelected(DataGrid?dataGrid)
        {
            if (dataGrid == null)
            {
                return;
            }

            if (Settings.IsCellSelectionEnabled)
            {
                var affectedEntries = new HashSet <ResourceTableEntry>();

                foreach (var cellInfo in dataGrid.GetSelectedVisibleCells().ToArray())
                {
                    if (!cellInfo.IsOfColumnType(ColumnType.Comment, ColumnType.Language))
                    {
                        continue;
                    }

                    cellInfo.Column?.OnPastingCellClipboardContent(cellInfo.Item, string.Empty);

                    if (cellInfo.Item is ResourceTableEntry resourceTableEntry)
                    {
                        affectedEntries.Add(resourceTableEntry);
                    }
                }

                dataGrid.CommitEdit();
                dataGrid.CommitEdit();

                foreach (var entry in affectedEntries)
                {
                    entry?.Refresh();
                }
            }
            else
            {
                var selectedItems = SelectedTableEntries.ToList();

                if (selectedItems.Count == 0)
                {
                    return;
                }

                var resourceFiles = selectedItems.Select(item => item.Container).Distinct();

                if (resourceFiles.Any(resourceFile => !ResourceManager.CanEdit(resourceFile, null)))
                {
                    return;
                }

                selectedItems.ForEach(item => item.Container.Remove(item));
            }
        }
Example #5
0
        private void CopySelected([NotNull] DataGrid dataGrid)
        {
            Contract.Requires(dataGrid != null);

            var selectedItems = SelectedTableEntries.ToArray();

            if (selectedItems.Length == 0)
            {
                dataGrid.GetCellSelection().SetClipboardData();
            }
            else
            {
                selectedItems.ToTable().SetClipboardData();
            }
        }
Example #6
0
        private void CutSelected()
        {
            var selectedItems = SelectedTableEntries.ToList();

            var resourceFiles = selectedItems.Select(item => item.Container).Distinct();

            if (resourceFiles.Any(resourceFile => !ResourceManager.CanEdit(resourceFile, null)))
            {
                return;
            }

            selectedItems.ToTable().SetClipboardData();

            selectedItems.ForEach(item => item.Container.Remove(item));
        }
Example #7
0
        private void DeleteSelected([NotNull] DataGrid dataGrid)
        {
            Contract.Requires(dataGrid != null);

            if (dataGrid.SelectionUnit == DataGridSelectionUnit.CellOrRowHeader)
            {
                var affectedEntries = new HashSet <ResourceTableEntry>();

                foreach (var cellInfo in dataGrid.SelectedCells)
                {
                    if (!cellInfo.IsOfColumnType(ColumnType.Comment, ColumnType.Language))
                    {
                        continue;
                    }

                    cellInfo.Column?.OnPastingCellClipboardContent(cellInfo.Item, string.Empty);

                    affectedEntries.Add(cellInfo.Item as ResourceTableEntry);
                }

                dataGrid.CommitEdit();
                dataGrid.CommitEdit();

                foreach (var entry in affectedEntries)
                {
                    entry?.Refresh();
                }
            }
            else
            {
                var selectedItems = SelectedTableEntries.ToList();

                if (selectedItems.Count == 0)
                {
                    return;
                }

                var resourceFiles = selectedItems.Select(item => item.Container).Distinct();

                if (resourceFiles.Any(resourceFile => !ResourceManager.CanEdit(resourceFile, null)))
                {
                    return;
                }

                selectedItems.ForEach(item => item.Container.Remove(item));
            }
        }
        public void SelectEntry([NotNull] ResourceTableEntry entry)
        {
            if (!ResourceManager.TableEntries.Contains(entry))
            {
                return;
            }

            var entity = entry.Container;

            if (!SelectedEntities.Contains(entity))
            {
                SelectedEntities.Add(entity);
            }

            SelectedTableEntries.Clear();
            SelectedTableEntries.Add(entry);
        }
        private bool CanDelete([CanBeNull] DataGrid dataGrid)
        {
            if (dataGrid == null)
            {
                return(false);
            }

            if (dataGrid.GetIsEditing())
            {
                return(false);
            }

            if (Settings.IsCellSelectionEnabled)
            {
                return(dataGrid.GetSelectedVisibleCells().All(cellInfo => cellInfo.IsOfColumnType(ColumnType.Comment, ColumnType.Language)));
            }

            return(SelectedTableEntries.Any());
        }
        public void SelectEntry([NotNull] ResourceTableEntry entry)
        {
            if (!ResourceManager.TableEntries.Contains(entry))
            {
                return;
            }

            var entity = entry.Container;

            ClearFiltersRequest?.Invoke(this, EventArgs.Empty);

            if (!SelectedEntities.Contains(entity))
            {
                SelectedEntities.Add(entity);
            }

            SelectedTableEntries.Clear();
            SelectedTableEntries.Add(entry);
        }
        public void AddNewKey([NotNull] ResourceEntity entity, [NotNull] string key)
        {
            if (!entity.CanEdit(null))
            {
                return;
            }

            var entry = entity.Add(key);

            if (entry == null)
            {
                return;
            }

            ClearFiltersRequest?.Invoke(this, EventArgs.Empty);

            ResourceManager.ReloadSnapshot();

            SelectedTableEntries.Clear();
            SelectedTableEntries.Add(entry);
        }
Example #12
0
        public void AddNewKey([NotNull] ResourceEntity entity, [NotNull] string key)
        {
            Contract.Requires(entity != null);
            Contract.Requires(!string.IsNullOrEmpty(key));

            if (!entity.CanEdit(null))
            {
                return;
            }

            var entry = entity.Add(key);

            if (entry == null)
            {
                return;
            }

            ResourceManager.ReloadSnapshot();

            SelectedTableEntries.Clear();
            SelectedTableEntries.Add(entry);
        }
 private bool CanToggleConsistencyCheck(string ruleId)
 {
     return(SelectedTableEntries.Any() && _configuration.Rules.IsEnabled(ruleId));
 }