internal BlackboardCategoryController(CategoryData categoryData, BlackboardCategoryViewModel categoryViewModel, GraphDataStore dataStore) : base(categoryData, categoryViewModel, dataStore) { m_BlackboardCategoryView = new SGBlackboardCategory(categoryViewModel, this); blackboard = categoryViewModel.parentView as SGBlackboard; if (blackboard == null) { return; } blackboard.Add(m_BlackboardCategoryView); // These make sure that the drag indicators are disabled whenever a drag action is cancelled without completing a drop blackboard.RegisterCallback <MouseUpEvent>(evt => { m_BlackboardCategoryView.OnDragActionCanceled(); }); blackboard.hideDragIndicatorAction += m_BlackboardCategoryView.OnDragActionCanceled; foreach (var categoryItem in categoryData.Children) { if (categoryItem == null) { AssertHelpers.Fail("Failed to insert blackboard row into category due to shader input being null."); continue; } InsertBlackboardRow(categoryItem); } }
internal BlackboardSectionController(GraphData graphData, BlackboardSectionViewModel sectionViewModel, GraphDataStore dataStore) : base(graphData, sectionViewModel, dataStore) { m_BlackboardSectionView = new SGBlackboardSection(sectionViewModel); blackboard = sectionViewModel.parentView as SGBlackboard; if (blackboard == null) { return; } blackboard.Add(m_BlackboardSectionView); // These make sure that the drag indicators are disabled whenever a drag action is cancelled without completing a drop blackboard.RegisterCallback <MouseUpEvent>(evt => { m_BlackboardSectionView.OnDragActionCanceled(); }); blackboard.hideDragIndicatorAction += m_BlackboardSectionView.OnDragActionCanceled; // Go through categories in Data Store foreach (var categoryData in graphData.categories) { // If category can be found with matching guid for this section // And that category contains this input if (categoryData.categoryGuid == ViewModel.associatedCategoryGuid) { m_CategoryDataReference = categoryData; break; } } foreach (var shaderInput in graphData.properties) { if (IsInputInSection(shaderInput)) { InsertBlackboardRow(shaderInput); } } foreach (var shaderInput in graphData.keywords) { if (IsInputInSection(shaderInput)) { InsertBlackboardRow(shaderInput); } } foreach (var shaderInput in graphData.dropdowns) { if (IsInputInSection(shaderInput)) { InsertBlackboardRow(shaderInput); } } }