public AnatomicEntityWpfControl(AimTemplateTreeAnatomicEntityNode anatomicEntity) { AnatomicEntity = anatomicEntity; InitializeComponent(); ChildControls = new List <IValidTreeControl>(); _originalBackground = Background; // Hide the allowed terms control that is not being used if (MaxNumberOfAnswers > 1) { _comboBox.Visibility = Visibility.Hidden; _comboBox.Height = 0; var cardinalityString = String.Empty; if (AnatomicEntity.MinCardinality > 0 && AnatomicEntity.MaxCardinality >= AnatomicEntity.AllowedTerms.Count) { cardinalityString = "Select at least " + AnatomicEntity.MinCardinality; } else if (AnatomicEntity.MaxCardinality < AnatomicEntity.AllowedTerms.Count && AnatomicEntity.MinCardinality <= 0) { cardinalityString = "Select less than " + (AnatomicEntity.MaxCardinality + 1); } else if (AnatomicEntity.MinCardinality > 0 && AnatomicEntity.MaxCardinality < AnatomicEntity.AllowedTerms.Count) { cardinalityString = "Select at least " + AnatomicEntity.MinCardinality + " and less than " + (AnatomicEntity.MaxCardinality + 1); } if (!String.IsNullOrEmpty(cardinalityString)) { ((TextBlock)_label.Content).Text += Environment.NewLine + cardinalityString; } } else { _itemsControl.Visibility = Visibility.Hidden; _itemsControl.Height = 0; } // Add confidence control if (AnatomicEntity.ShouldDisplay && AnatomicEntity.HasConfidence) { NodeConfidenceWpfControl = new NodeConfidenceWpfControl(AnatomicEntity); _stackPanel.Children.Add(NodeConfidenceWpfControl); } var characteristicNodes = anatomicEntity.AnatomicEntityCharacteristicTreeNodes.Cast <AimTemplateTreeNode>().ToList(); characteristicNodes.AddRange(anatomicEntity.ImagingObservationCharacteristicTreeNodes.Cast <AimTemplateTreeNode>().ToList()); characteristicNodes.Sort(new TemplateTreeNodeOrderComparer()); var groupedNodes = new List <AimTemplateTreeNode>(); foreach (var characteristic in characteristicNodes) { // Start or add to group label control if (!String.IsNullOrEmpty(characteristic.GroupLabel)) { if (groupedNodes.Count > 0 && characteristic.GroupLabel == groupedNodes[0].GroupLabel) { groupedNodes.Add(characteristic); } else { // Finish and add the group label control if (groupedNodes.Count > 0) { var groupLabel = new GroupLabelWpfControl(groupedNodes) { Header = groupedNodes[0].GroupLabel }; _stackPanel.Children.Add(groupLabel); ChildControls.Add(groupLabel); } groupedNodes = new List <AimTemplateTreeNode> { characteristic }; } } else { // Finish and add the group label control if (groupedNodes.Count > 0) { var groupLabel = new GroupLabelWpfControl(groupedNodes) { Header = groupedNodes[0].GroupLabel }; groupedNodes.Clear(); _stackPanel.Children.Add(groupLabel); ChildControls.Add(groupLabel); } if (characteristic is AimTemplateTreeAnatomicEntityCharacteristicNode) { var characteristicControl = new AnatomicEntityCharacteristicWpfControl( (AimTemplateTreeAnatomicEntityCharacteristicNode)characteristic); _stackPanel.Children.Add(characteristicControl); ChildControls.Add(characteristicControl); } if (characteristic is AimTemplateTreeImagingObservationCharacteristicNode) { var characteristicControl = new ImagingObservationCharacteristicWpfControl( (AimTemplateTreeImagingObservationCharacteristicNode)characteristic); _stackPanel.Children.Add(characteristicControl); ChildControls.Add(characteristicControl); } } } // Finish and add the group label control if (groupedNodes.Count > 0) { var groupLabel = new GroupLabelWpfControl(groupedNodes) { Header = groupedNodes[0].GroupLabel }; _stackPanel.Children.Add(groupLabel); ChildControls.Add(groupLabel); } Loaded += AnatomicEntityWpfControlLoaded; AnatomicEntity.SelectedAllowedTermsChanged += SelectedAllowedTermsCollectionChanged; CheckBoxControls = new Dictionary <AimTemplateTreeAllowedTerm, CheckBox>(); if (!AnatomicEntity.ShouldDisplay) { _label.Visibility = Visibility.Hidden; _label.Height = 0; _itemsControl.Visibility = Visibility.Hidden; _itemsControl.Height = 0; _comboBox.Visibility = Visibility.Hidden; _comboBox.Height = 0; if (characteristicNodes.TrueForAll(item => !item.ShouldDisplay)) { Visibility = Visibility.Hidden; Height = 0; } } }
public GroupLabelWpfControl(List <AimTemplateTreeNode> treeNodes) { TreeNodes = treeNodes; NodeControls = new List <IValidTreeControl>(); InitializeComponent(); var visible = false; foreach (var treeNode in TreeNodes) { if (treeNode.ShouldDisplay) { visible = true; } if (treeNode is AimTemplateTreeAnatomicEntityNode) { var anatomicEntityControl = new AnatomicEntityWpfControl((AimTemplateTreeAnatomicEntityNode)treeNode); _stackPanel.Children.Add(anatomicEntityControl); NodeControls.Add(anatomicEntityControl); } if (treeNode is AimTemplateTreeImagingObservationNode) { var imagingObservationControl = new ImagingObservationWpfControl((AimTemplateTreeImagingObservationNode)treeNode); _stackPanel.Children.Add(imagingObservationControl); NodeControls.Add(imagingObservationControl); } if (treeNode is AimTemplateTreeInferenceNode) { var inferenceControl = new InferenceWpfControl((AimTemplateTreeInferenceNode)treeNode); _stackPanel.Children.Add(inferenceControl); NodeControls.Add(inferenceControl); } if (treeNode is AimTemplateTreeGeometricShapeNode) { var geometricShapeControl = new GeometricShapeWpfControl((AimTemplateTreeGeometricShapeNode)treeNode); _stackPanel.Children.Add(geometricShapeControl); NodeControls.Add(geometricShapeControl); } if (treeNode is AimTemplateTreeCalculationNode) { var calculationControl = new CalculationWpfControl((AimTemplateTreeCalculationNode)treeNode); _stackPanel.Children.Add(calculationControl); NodeControls.Add(calculationControl); } if (treeNode is AimTemplateTreeAnatomicEntityCharacteristicNode) { var aecControl = new AnatomicEntityCharacteristicWpfControl( (AimTemplateTreeAnatomicEntityCharacteristicNode)treeNode); _stackPanel.Children.Add(aecControl); NodeControls.Add(aecControl); } if (treeNode is AimTemplateTreeImagingObservationCharacteristicNode) { var iocControl = new ImagingObservationCharacteristicWpfControl( (AimTemplateTreeImagingObservationCharacteristicNode)treeNode); _stackPanel.Children.Add(iocControl); NodeControls.Add(iocControl); } } if (!visible) { Visibility = Visibility.Hidden; Height = 0; } }
public GroupLabelWpfControl(List<AimTemplateTreeNode> treeNodes) { TreeNodes = treeNodes; NodeControls = new List<IValidTreeControl>(); InitializeComponent(); var visible = false; foreach (var treeNode in TreeNodes) { if (treeNode.ShouldDisplay) visible = true; if (treeNode is AimTemplateTreeAnatomicEntityNode) { var anatomicEntityControl = new AnatomicEntityWpfControl((AimTemplateTreeAnatomicEntityNode)treeNode); _stackPanel.Children.Add(anatomicEntityControl); NodeControls.Add(anatomicEntityControl); } if (treeNode is AimTemplateTreeImagingObservationNode) { var imagingObservationControl = new ImagingObservationWpfControl((AimTemplateTreeImagingObservationNode)treeNode); _stackPanel.Children.Add(imagingObservationControl); NodeControls.Add(imagingObservationControl); } if (treeNode is AimTemplateTreeInferenceNode) { var inferenceControl = new InferenceWpfControl((AimTemplateTreeInferenceNode)treeNode); _stackPanel.Children.Add(inferenceControl); NodeControls.Add(inferenceControl); } if (treeNode is AimTemplateTreeGeometricShapeNode) { var geometricShapeControl = new GeometricShapeWpfControl((AimTemplateTreeGeometricShapeNode)treeNode); _stackPanel.Children.Add(geometricShapeControl); NodeControls.Add(geometricShapeControl); } if (treeNode is AimTemplateTreeCalculationNode) { var calculationControl = new CalculationWpfControl((AimTemplateTreeCalculationNode)treeNode); _stackPanel.Children.Add(calculationControl); NodeControls.Add(calculationControl); } if (treeNode is AimTemplateTreeAnatomicEntityCharacteristicNode) { var aecControl = new AnatomicEntityCharacteristicWpfControl( (AimTemplateTreeAnatomicEntityCharacteristicNode) treeNode); _stackPanel.Children.Add(aecControl); NodeControls.Add(aecControl); } if (treeNode is AimTemplateTreeImagingObservationCharacteristicNode) { var iocControl = new ImagingObservationCharacteristicWpfControl( (AimTemplateTreeImagingObservationCharacteristicNode)treeNode); _stackPanel.Children.Add(iocControl); NodeControls.Add(iocControl); } } if (!visible) { Visibility = Visibility.Hidden; Height = 0; } }