示例#1
0
        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;
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
                }
            }
        }
示例#5
0
        // 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);
                }
            }
        }