Exemple #1
0
        private void Branch_Click(object sender, RoutedEventArgs e)
        {
#if DEBUG
            ElementWatcher.ClearRecording();
            ElementWatcher.Recording = true;
#endif

            Project branchProject;

            if (versionManager == null)
            {
                versionManager         = new VersionManager();
                branchProject          = versionManager.BranchProject(project, MainWindow.PIMRepresentantsSet.ElementRepresentationOrder, true);
                cbBranches.DataContext = versionManager;
            }
            else
            {
                branchProject = versionManager.BranchProject(project, MainWindow.PIMRepresentantsSet.ElementRepresentationOrder, false);
            }

            branchProject.CreateModelController();
            branchProject.GetModelController().getUndoStack().ItemsChanged += MainWindow.UndoStack_ItemsChanged;

            cbBranches.SelectedItem      = branchProject.Version;
            MainWindow.HasUnsavedChanges = true;

#if DEBUG
            Tests.ModelIntegrity.ModelConsistency.CheckEverything(project);
            Tests.ModelIntegrity.ModelConsistency.CheckEverything(branchProject);
            Tests.ModelIntegrity.ModelConsistency.CheckElementSchema(ElementWatcher.CreatedElements, branchProject.Schema, null);

            Tests.ModelIntegrity.VersionsConsistency.CheckVersionsConsistency(versionManager);
            foreach (Element element in ElementWatcher.CreatedElements)
            {
                if (element.Version != branchProject.Version && !(element is InstantiatedProperty) && !(element is StereotypeInstance))
                {
                    System.Diagnostics.Debug.WriteLine(String.Format("{0} element without version", element));
                }
            }
#endif
        }