示例#1
0
        private void AddToDiagram_MenuClick(object sender, RoutedEventArgs e)
        {
            ProjectTreeViewItem item = projectStructure.SelectedItem as ProjectTreeViewItem;

            currentEntity        = new SubDiagram(null, item.ProjectItem);
            currentCanvas.Cursor = Cursors.Pen;
        }
示例#2
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;
        }
示例#3
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);
        }
        public ProjectExplorerViewModel(IProjectExplorerToolboxToolbarService toolbarService,
                                        IEventAggregator eventAggregator)
            : base(toolbarService)
        {
            _eventAggregator = eventAggregator;

            Name      = "Project Explorer";
            Title     = "Project Explorer";
            ContentId = "Project Explorer";//TODO : Move to constants
            IsVisible = false;


            _view = new ProjectExplorerView(this);
            View  = _view;



            Root = new ProjectTreeViewItem(null, false)
            {
                DisplayName = "Project A"
            };

            var pluginsFolder = new FolderTreeViewItem(Root, false)
            {
                DisplayName = "Plugins Folder"
            };
            var pluginCs = new CsCodeTreeViewItem(pluginsFolder, false)
            {
                DisplayName = "Plugin.cs"
            };


            var executionFolder = new FolderTreeViewItem(Root, false)
            {
                DisplayName = "Execution Folder"
            };


            var businessUnits_Execution_Designer = new ExecutionDesignerTreeViewItem(executionFolder, false)
            {
                DisplayName = "BusinessUnits.xml"
            };
            var businessUnits_Execution = new ExecutionTreeViewItem(businessUnits_Execution_Designer, false)
            {
                DisplayName = "Project A Execution 1.cs"
            };


            var tempCs = new CsCodeTreeViewItem(Root, false)
            {
                DisplayName = "Temp.cs"
            };


            OnPropertyChanged(() => Root);
        }
示例#5
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);
            }
        }
示例#6
0
        private void RunSimulation_MenuClick(object sender, RoutedEventArgs e)
        {
            ProjectTreeViewItem item = projectStructure.SelectedItem as ProjectTreeViewItem;
            ClosableTabItem     cti  = findTabItem(item.ProjectItem);

            if (cti == null)
            {
                createNewDiagram(item.ProjectItem.Canvas, item.ProjectItem.Name);
            }
            else
            {
                cti.IsSelected = true;
            }
            SimulateLocalButton_Click(null, null);
        }
示例#7
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);
                }
            }
        }
示例#8
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);
                }
            }
        }
示例#9
0
        private void RemoveItem_MenuClick(object sender, RoutedEventArgs e)
        {
            MessageBoxResult result = MessageBox.Show("Вы уверены?",
                                                      "Убрать файл из проекта", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (result == MessageBoxResult.Yes)
            {
                ProjectTreeViewItem item = projectStructure.SelectedItem as ProjectTreeViewItem;

                ClosableTabItem cti = findTabItem(item.ProjectItem);
                if (cti != null)
                {
                    cti.button_close_Click(null, null);
                }

                (projectStructure.Items[0] as TreeViewItem).Items.Remove(item);
                Project.Instance.removeProjectItem(item.ProjectItem);
                fs.saveProject();
            }
        }
示例#10
0
        private void Open_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.InitialDirectory = Project.Instance.FullPath;          // Default directory
            dlg.DefaultExt       = FileService.PROJECT_ITEM_EXTENSION; // Default file extension
            dlg.Filter           = "SAPR-SIM models (.ssm)|*.ssm";     // Filter files by extension

            // Show open file dialog box
            Nullable <bool> result = dlg.ShowDialog();

            // Process open file dialog box results
            if (result.Value)
            {
                string filename = Path.GetFileNameWithoutExtension(dlg.FileName);
                bool   piExist  = Project.Instance.Items.Find(x => x.Name == filename) != null;
                if (!piExist)
                {
                    createNewDiagram(fs.open(dlg.FileName));
                    printInformation("Открыт файл " + dlg.FileName);
                    changeTabName(filename);

                    ProjectItem newItem = new ProjectItem(currentCanvas, filename);
                    Project.Instance.addProjectItem(newItem);
                    TreeViewItem root = projectStructure.Items[0] as TreeViewItem;

                    ProjectTreeViewItem ptvi = new ProjectTreeViewItem()
                    {
                        Header = ProjectTreeViewItem.packProjectItem(newItem.Name, false), ProjectItem = newItem
                    };
                    attachProjectItemEvents(ptvi);
                    root.Items.Add(ptvi);

                    fs.save(newItem.Canvas, newItem.FullPath);
                    fs.saveProject();
                }
                else
                {
                    System.Windows.MessageBox.Show("Файл уже подключен к проекту");
                }
            }
        }
示例#11
0
        private void CreateNewDiagram_Click(object sender, RoutedEventArgs e)
        {
            CreateDiagramDialog cdd    = new CreateDiagramDialog();
            Nullable <bool>     result = cdd.ShowDialog();

            if (result.Value)
            {
                createNewDiagram(null, cdd.Name);
                ProjectItem newItem = new ProjectItem(currentCanvas, cdd.Name);
                Project.Instance.addProjectItem(newItem);
                TreeViewItem        root = projectStructure.Items[0] as TreeViewItem;
                ProjectTreeViewItem ptvi = new ProjectTreeViewItem()
                {
                    Header = ProjectTreeViewItem.packProjectItem(newItem.Name, false), ProjectItem = newItem
                };
                attachProjectItemEvents(ptvi);
                root.Items.Add(ptvi);
                fs.save(newItem.Canvas, newItem.FullPath);
                fs.saveProject();
            }
        }
示例#12
0
        private void OnProjectItemMouseDoubleClick(object sender, MouseButtonEventArgs args)
        {
            ProjectTreeViewItem tvi = sender as ProjectTreeViewItem;

            findAndOpenRelatedTab(tvi.ProjectItem);
        }