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
        }
Exemple #2
0
        /// <summary>
        /// Creates a new empty element.
        /// Adaptee is set to null, an empty comments collection is created.
        /// </summary>
        /// <param name="_schema">
        /// Reference to the Schema instance that is the top
        /// of this model hierarchy.
        /// </param>
        /// <param name="_metaclass">
        /// UML metaclass(es) that this element is instance of.
        /// Bitwise combination of StereotypeTarget values.
        /// </param>
        protected _Element(Schema _schema, StereotypeTarget _metaclass)
        {
            adaptedElement = default(NUmlType);

            comments = new ObservableCollection <Comment>();
            comments.CollectionChanged += OnCommentsChanged;

            appliedStereotypes = new ObservableCollection <StereotypeInstance>();

            schema    = _schema;
            metaclass = _metaclass;

            if (schema.Model != null && schema.Model.VersionManager != null)
            {
                schema.Model.VersionManager.SetAsFirstVersion(this, schema.Model.Version);
            }

#if DEBUG
            ElementWatcher.InvokeElementCreated(this);
#endif
            Guid = XCaseGuid.NewGuid();
        }