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; } }
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)); } }
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(); } }
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)); }
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); }
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)); }