/// ------------------------------------------------------------------------------------ public void SetCurrentNodeFromGridIndex(int index) { if (index >= 0 && index < AllLeafNodesShowingInGrid.Count) { _currentNode = AllLeafNodesShowingInGrid[index]; } }
/// ------------------------------------------------------------------------------------ public int Compare(LocTreeNode <T> x, LocTreeNode <T> y) { string xText = string.Empty; string yText = string.Empty; var prefixToRemove = (x.TreeView != null && x.TreeView.SelectedNode != null ? x.TreeView.SelectedNode.Name : string.Empty); const string kNonsenseIfNoPrefixExists = "5%ij#a"; //replace fails if the pattern is "", so use this if (string.IsNullOrEmpty(prefixToRemove)) { prefixToRemove = kNonsenseIfNoPrefixExists; } var ci = CultureInfo.GetCultureInfo("en"); switch ((int)_sortField) { case 0: xText = x.Id.Replace(prefixToRemove, string.Empty).Trim('.'); yText = y.Id.Replace(prefixToRemove, string.Empty).Trim('.'); break; case 1: xText = x.GetText(_srcLangId) ?? string.Empty; yText = y.GetText(_srcLangId) ?? string.Empty; ci = CultureInfo.GetCultureInfo(_srcLangId); break; case 2: xText = (x.GetTranslatedText(_tgtLangId) ?? x.GetText(_tgtLangId)) ?? string.Empty; yText = (y.GetTranslatedText(_tgtLangId) ?? y.GetText(_tgtLangId)) ?? string.Empty; ci = CultureInfo.GetCultureInfo(_tgtLangId); break; case 3: xText = x.GetToolTip(_srcLangId) ?? string.Empty; yText = y.GetToolTip(_srcLangId) ?? string.Empty; ci = CultureInfo.GetCultureInfo(_srcLangId); break; case 4: xText = (x.GetTranslatedToolTip(_tgtLangId) ?? x.GetToolTip(_tgtLangId)) ?? string.Empty; yText = (y.GetTranslatedToolTip(_tgtLangId) ?? y.GetToolTip(_tgtLangId)) ?? string.Empty; ci = CultureInfo.GetCultureInfo(_tgtLangId); break; } return(_sortOrder == SortOrder.Ascending ? string.Compare(xText, yText, false, ci) : string.Compare(yText, xText, false, ci)); }
/// ------------------------------------------------------------------------------------ public void SaveChangesInMemory(LocTreeNode node, LocalizingInfo locInfo) { if (locInfo == null || locInfo.Id == null || locInfo.UpdateFields == UpdateFields.None || _tgtLangId == _srcLangId) { return; } if (locInfo.Text == (node.GetText(_tgtLangId) ?? string.Empty) && locInfo.ToolTipText == (node.GetToolTip(_tgtLangId) ?? string.Empty) && locInfo.ShortcutKeys == (node.GetShortcutKeys(_tgtLangId) ?? string.Empty)) { return; } locInfo.LangId = _tgtLangId; _modifiedLanguages.Add(_tgtLangId); if (!node.SavedTranslationInfo.ContainsKey(_tgtLangId)) { node.SavedTranslationInfo[_tgtLangId] = locInfo; } else { if ((locInfo.UpdateFields & UpdateFields.Text) == UpdateFields.Text) { node.SavedTranslationInfo[_tgtLangId].Text = (locInfo.Text == string.Empty ? null : locInfo.Text); } if ((locInfo.UpdateFields & UpdateFields.ToolTip) == UpdateFields.ToolTip) { node.SavedTranslationInfo[_tgtLangId].ToolTipText = (locInfo.ToolTipText == string.Empty ? null : locInfo.ToolTipText); } if ((locInfo.UpdateFields & UpdateFields.ShortcutKeys) == UpdateFields.ShortcutKeys) { node.SavedTranslationInfo[_tgtLangId].ShortcutKeys = (locInfo.ShortcutKeys == string.Empty ? null : locInfo.ShortcutKeys); } if ((locInfo.UpdateFields & UpdateFields.Comment) == UpdateFields.Comment) { node.SavedComment = (locInfo.Comment == string.Empty ? null : locInfo.Comment); } node.SavedTranslationInfo[_tgtLangId].UpdateFields |= locInfo.UpdateFields; } }
/// ------------------------------------------------------------------------------------ private IEnumerable <LocTreeNode <T> > GetLeafNodesOfNode(LocTreeNode <T> node) { foreach (var childNode in node.Nodes.Cast <LocTreeNode <T> >()) { if (AllLeafNodes.Contains(childNode)) { yield return(childNode); } else { foreach (var leafNode in GetLeafNodesOfNode(childNode)) { yield return(leafNode); } } } }
/// ------------------------------------------------------------------------------------ public void LoadTreeNodes(TreeView treeVw) { AllLeafNodes = new List <LocTreeNode <T> >(); EnabledManagers = LocalizationManagerInternal <T> .LoadedManagers.Values .OrderBy(lm => lm.Name).ToList(); foreach (var lm in EnabledManagers) { _runInReadonlyMode |= !lm.CanCustomizeLocalizations; var node = new LocTreeNode <T>(lm, lm.Name, null, lm.Name); treeVw.Nodes.Add(node); var childNodes = node.Nodes; lm.StringCache.LoadGroupNodes(childNodes); AllLeafNodes.AddRange(lm.StringCache.LeafNodeList); _allNodes = treeVw.Nodes; } }