示例#1
0
        private void TryHandleSelectedCollidable(IElement element, NamedObjectSave selectedNos)
        {
            var shouldShowControl = selectedNos != null &&
                                    CollisionRelationshipViewModelController
                                    .GetIfCanBeReferencedByRelationship(selectedNos);

            if (shouldShowControl)
            {
                RefreshCollidableViewModelTo(element, selectedNos);

                if (collidableDisplay == null)
                {
                    collidableDisplay = new CollidableNamedObjectRelationshipDisplay();
                    collidableTab     = this.CreateTab(collidableDisplay, "Collision");
                    this.ShowTab(collidableTab, TabLocation.Center);
                    collidableDisplay.DataContext = collidableViewModel;
                }
                else
                {
                    this.ShowTab(collidableTab);
                }

                // not sure why this is required:
                collidableDisplay.DataContext = null;
                collidableDisplay.DataContext = collidableViewModel;
            }
            else
            {
                this.RemoveTab(collidableTab);
            }
        }
示例#2
0
        private void HandleTreeViewItemSelected(TreeNode selectedTreeNode)
        {
            var selectedNos = GlueState.Self.CurrentNamedObjectSave;

            var element = GlueState.Self.CurrentElement;

            if (selectedNos != null)
            {
                CollisionRelationshipViewModelController.TryFixSourceClassType(selectedNos);
            }

            TryHandleSelectedCollisionRelationship(selectedNos);

            TryHandleSelectedCollidable(element, selectedNos);
        }
示例#3
0
        public override void StartUp()
        {
            relationshipViewModel = CollisionRelationshipViewModelController.CreateViewModel();

            collidableViewModel = new CollidableNamedObjectRelationshipViewModel();
            CollidableNamedObjectController.RegisterViewModel(collidableViewModel);

            var collisionCodeGenerator = new CollisionCodeGenerator();

            AvailableAssetTypes.Self.AddAssetType(
                AssetTypeInfoManager.Self.CollisionRelationshipAti);

            RegisterCodeGenerator(collisionCodeGenerator);

            AssignEvents();
        }
示例#4
0
        private void RefreshViewModelTo(NamedObjectSave selectedNos)
        {
            // show UId

            if (relationshipControl != null)
            {
                relationshipControl.DataContext = null;
            }

            relationshipViewModel.GlueObject = selectedNos;

            CollisionRelationshipViewModelController
            .RefreshAvailableCollisionObjects(GlueState.Self.CurrentElement, relationshipViewModel);

            CollisionRelationshipViewModelController
            .RefreshSubcollisionObjects(GlueState.Self.CurrentElement, relationshipViewModel);

            relationshipViewModel.UpdateFromGlueObject();

            if (relationshipControl != null)
            {
                relationshipControl.DataContext = relationshipViewModel;
            }
        }