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); } }
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); }
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(); }
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; } }