private void Rename_RootMenuClick(object sender, RoutedEventArgs e) { TreeViewItem item = projectStructure.SelectedItem as TreeViewItem; string name = ProjectTreeViewItem.unpack(item.Header as StackPanel); StackPanel sp = null; if (item is ProjectTreeViewItem) { sp = ProjectTreeViewItem.packProjectItem(name, true); } else { sp = ProjectTreeViewItem.packProject(name, true); } TextBox tb = sp.Children[1] as TextBox; tb.KeyDown += TextBox_KeyUp; tb.LostFocus += TextBox_LostFocus; tb.IsVisibleChanged += new DependencyPropertyChangedEventHandler(TextBox_IsVisibleChanged); tb.CaretIndex = tb.Text.Length; item.Header = sp; }
private void ProjectSettings_Click(object sender, RoutedEventArgs e) { new ProjectSettings().ShowDialog(); TreeViewItem item = projectStructure.Items[0] as TreeViewItem; item.Header = ProjectTreeViewItem.packProject(Project.Instance.ProjectName, false); }
private void renameTreeViewItem(object sender) { string newName = (sender as TextBox).Text; if (String.IsNullOrWhiteSpace(newName)) { MessageBox.Show("Введено некорректное имя"); return; } TreeViewItem selected = projectStructure.SelectedItem as TreeViewItem; ProjectItem pi = Project.Instance.Items.Find(x => x.Name == newName); if (pi != null) { // true = avoiding NOT Renaming (when user clicked "Rename" and name not changed) if (selected is ProjectTreeViewItem && (selected as ProjectTreeViewItem).ProjectItem.Equals(pi)) { selected.Header = ProjectTreeViewItem.packProjectItem(newName, false); } else { MessageBox.Show("Процесс с таким именем уже подключен"); } return; } if (File.Exists(Project.Instance.FullPath + "\\" + newName + FileService.PROJECT_ITEM_EXTENSION)) { MessageBoxResult result = MessageBox.Show("Файл с таким именем уже есть в проектной директории. Перезаписать файл?", "Предупреждение", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (result == MessageBoxResult.No) { return; } } if (selected is ProjectTreeViewItem) { ProjectTreeViewItem item = selected as ProjectTreeViewItem; item.Header = ProjectTreeViewItem.packProjectItem(newName, false); fs.renameProjectItem(item.ProjectItem, newName); changeTabName(findTabItem(item.ProjectItem), newName); } else { TreeViewItem root = projectStructure.Items[0] as TreeViewItem; root.Header = ProjectTreeViewItem.packProject(newName, false); fs.renameProject(newName); } }
private void OpenProject_Click(object sender, RoutedEventArgs e) { if (checkOnceProject()) { Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); dlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Default directory dlg.DefaultExt = FileService.PROJECT_EXTENSION; // Default file extension dlg.Filter = "SAPR-SIM project (.ssp)|*.ssp"; // Filter files by extension // Show open file dialog box Nullable <bool> result = dlg.ShowDialog(); // Process open file dialog box results if (result.Value) { printInformation("Открыт проект " + dlg.FileName); fs.openProject(dlg.FileName); Project prj = Project.Instance; TreeViewItem projectItem = new TreeViewItem() { Header = ProjectTreeViewItem.packProject(prj.ProjectName, false) }; projectStructure.Items.Add(projectItem); if (prj.Items.Count > 0) { printInformation("Количество процессов проектирования в проекте: " + prj.Items.Count); foreach (ProjectItem item in prj.Items) { createNewDiagram(item.Canvas, item.Name); item.Canvas = currentCanvas; ProjectTreeViewItem tvi = new ProjectTreeViewItem() { Header = ProjectTreeViewItem.packProjectItem(item.Name, false), ProjectItem = item }; attachProjectItemEvents(tvi); projectItem.Items.Add(tvi); printInformation("Открыт процесс : " + item.Name); } projectItem.IsExpanded = true; attachProjectEvents(projectItem); } ButtonsActivation(true); } } }
// TODO refactor CreateNewProject_Click && OpenProject_Click private void CreateNewProject_Click(object sender, RoutedEventArgs e) { if (checkOnceProject()) { CreateProject cp = new CreateProject(); Nullable <bool> result = cp.ShowDialog(); if (result.Value) { Project prj = Project.Instance; TreeViewItem projectItem = new TreeViewItem() { Header = ProjectTreeViewItem.packProject(prj.ProjectName, false) }; projectStructure.Items.Add(projectItem); if (prj.Items.Count > 0) { ProjectItem item = prj.Items[0]; createNewDiagram(null, item.Name); item.Canvas = currentCanvas; fs.saveProject(); fs.save(currentCanvas, prj.PathToItem(item)); ProjectTreeViewItem newModel = new ProjectTreeViewItem() { Header = ProjectTreeViewItem.packProjectItem(item.Name, false), ProjectItem = item }; attachProjectItemEvents(newModel); projectItem.Items.Add(newModel); projectItem.IsExpanded = true; attachProjectItemEvents(newModel); } else { fs.saveProject(); } ButtonsActivation(true); attachProjectEvents(projectItem); } } }