void EndEdit() { if (!List.ContainsKey(m_TextBox.Text)) { FolderInfo info = new FolderInfo(m_TextBox.Text, m_TextBox.Text, true); List.Add(info.Name, info); FolderItemControl itemControl = new FolderItemControl(info); m_ComboBox.Combo.Items.Add(itemControl); m_ComboBox.Combo.SelectedItem = itemControl; } m_ComboBox.Visibility = Visibility.Visible; m_TextBox.Visibility = Visibility.Collapsed; m_ComboBox.Focus(); Raise_EditEnd(); }
public void Initialize(CubeDefInfo cubeInfo) { Groups.Clear(); Groups.Add(RootGroup.Name, RootGroup); if (cubeInfo != null) { // Создаем описатели групп мер foreach (MeasureGroupInfo groupInfo in cubeInfo.MeasureGroups) { if (!Groups.ContainsKey(groupInfo.Name)) { Groups.Add(groupInfo.Name, new GroupInfo(groupInfo.Name, groupInfo.Caption)); } } foreach (MeasureInfo measureInfo in cubeInfo.Measures) { String groupName = measureInfo.MeasureGroup; // Если папка указана, то добавлем в иерархию (если она не привязана к группе, то она попадает в корневую коллекцию папкок) // DisplayFolder может содержать иерархию папок, разделенную "\\" if (!String.IsNullOrEmpty(measureInfo.DisplayFolder)) { // Определяем группу, в которую входит данная папка (группы может и не быть) GroupInfo groupInfo = null; if (!String.IsNullOrEmpty(groupName) && Groups.ContainsKey(groupName)) { groupInfo = Groups[groupName]; } // Разбиваем полный путь на составляющие и создаем папку для каждой из них String[] folders_names = measureInfo.DisplayFolder.Split(new String[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); if (folders_names != null) { String folderName = String.Empty; FolderInfo prev_folderInfo = null; foreach (String folderCaption in folders_names) { // Создаем узел для группы if (!String.IsNullOrEmpty(folderCaption)) { // Получаем имя папки для данного уровня if (!String.IsNullOrEmpty(folderName)) { folderName += "\\"; } folderName += folderCaption; // Пытаемся найти папку с данным именем. Если она не найдена, то создаем ее FolderInfo folderInfo = GetFolder(groupInfo != null ? groupInfo.Name : String.Empty, folderName); if (folderInfo == null) { // Создаем данную папку folderInfo = new FolderInfo(folderName, folderCaption); // Если предыдущая папка в иерархии известна, то добавляем в нее if (prev_folderInfo != null) { prev_folderInfo.Folders.Add(folderName, folderInfo); } else { // Если группа известна то добавляем в группу в коллекцию корневых, иначе просто в коллекцию корневых папок if (groupInfo != null) groupInfo.Folders.Add(folderName, folderInfo); else RootGroup.Folders.Add(folderName, folderInfo); } } prev_folderInfo = folderInfo; } } } } } } }
public void Initialize(CubeDefInfo cubeInfo) { Groups.Clear(); Groups.Add(RootGroup.Name, RootGroup); if (cubeInfo != null) { // Создаем описатели групп мер foreach (MeasureGroupInfo groupInfo in cubeInfo.MeasureGroups) { if (!Groups.ContainsKey(groupInfo.Name)) { Groups.Add(groupInfo.Name, new GroupInfo(groupInfo.Name, groupInfo.Caption)); } } foreach (MeasureInfo measureInfo in cubeInfo.Measures) { String groupName = measureInfo.MeasureGroup; // Если папка указана, то добавлем в иерархию (если она не привязана к группе, то она попадает в корневую коллекцию папкок) // DisplayFolder может содержать иерархию папок, разделенную "\\" if (!String.IsNullOrEmpty(measureInfo.DisplayFolder)) { // Определяем группу, в которую входит данная папка (группы может и не быть) GroupInfo groupInfo = null; if (!String.IsNullOrEmpty(groupName) && Groups.ContainsKey(groupName)) { groupInfo = Groups[groupName]; } // Разбиваем полный путь на составляющие и создаем папку для каждой из них String[] folders_names = measureInfo.DisplayFolder.Split(new String[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); if (folders_names != null) { String folderName = String.Empty; FolderInfo prev_folderInfo = null; foreach (String folderCaption in folders_names) { // Создаем узел для группы if (!String.IsNullOrEmpty(folderCaption)) { // Получаем имя папки для данного уровня if (!String.IsNullOrEmpty(folderName)) { folderName += "\\"; } folderName += folderCaption; // Пытаемся найти папку с данным именем. Если она не найдена, то создаем ее FolderInfo folderInfo = GetFolder(groupInfo != null ? groupInfo.Name : String.Empty, folderName); if (folderInfo == null) { // Создаем данную папку folderInfo = new FolderInfo(folderName, folderCaption); // Если предыдущая папка в иерархии известна, то добавляем в нее if (prev_folderInfo != null) { prev_folderInfo.Folders.Add(folderName, folderInfo); } else { // Если группа известна то добавляем в группу в коллекцию корневых, иначе просто в коллекцию корневых папок if (groupInfo != null) { groupInfo.Folders.Add(folderName, folderInfo); } else { RootGroup.Folders.Add(folderName, folderInfo); } } } prev_folderInfo = folderInfo; } } } } } } }