void addTeam_Click(object sender, EventArgs e) { var parentTeam = this.FindAncestor <OrgContainerShape>(); var newTeam = new OrgContainerShape() { Name = "New " + parentTeam.Tag.ToString() + " Team", BaseColor = parentTeam.BaseColor, }; parentTeam.ShowCollapseButton = true; newTeam.ToggleCollapseButton.ImagePrimitive.Visibility = Telerik.WinControls.ElementVisibility.Hidden; newTeam.Text = newTeam.Name; newTeam.Tag = parentTeam.Tag.ToString(); newTeam.Path = string.Format("{0}|{1}", parentTeam.Path, newTeam.Name); newTeam.TeamMembers = string.Format("0 Team Members"); newTeam.ShowCollapseButton = false; OrgChartForm.currentLayoutSettings.Roots.Add(newTeam); var diagramElement = this.FindAncestor <RadDiagramElement>(); diagramElement.AddShape(newTeam); RadDiagramConnection connection = new RadDiagramConnection(); connection.ConnectionType = Telerik.Windows.Diagrams.Core.ConnectionType.Polyline; connection.Source = parentTeam; connection.Target = newTeam; connection.Route = true; diagramElement.AddConnection(connection); diagramElement.SetLayout(Telerik.Windows.Diagrams.Core.LayoutType.Tree, OrgChartForm.currentLayoutSettings); }
private ObservableCollection <OrgContainerShape> GetSubNodes(XContainer element, OrgContainerShape parent, int level) { var nodes = new ObservableCollection <OrgContainerShape>(); List <XElement> elements = new List <XElement>(element.Elements("Node")); if (elements.Count == 0) { return(nodes); } foreach (var subElement in elements) { OrgContainerShape node = this.CreateNode(subElement, parent); node.ShowCollapseButton = level < 3; if (node.Path.Contains("Development")) { node.BaseColor = this.groupColor[2]; } if (node.Path.Contains("Marketing")) { node.BaseColor = this.groupColor[1]; } this.radDiagram1.AddShape(node); this.GetSubNodes(subElement, node, level + 1); nodes.Add(node); } return(nodes); }
private void PopulateWithData() { XElement dataXml = XElement.Load(@"C:\Users\Cantekin\Desktop\Yeni klasör (2)\Diagram\Diagram\DiagramFirstLook\Resources\Organization.xml"); foreach (XElement element in dataXml.Elements("Node")) { OrgContainerShape node = this.CreateNode(element, null); node.BaseColor = this.groupColor[0]; this.radDiagram1.AddShape(node); currentLayoutSettings.Roots.Add(node); this.GetSubNodes(element, node, 2); } }
private OrgContainerShape CreateNode(XElement element, OrgContainerShape parentNode) { OrgContainerShape orgTeam = new OrgContainerShape() { Name = element.Attribute("Name").Value, }; orgTeam.ToggleCollapseButton.ImagePrimitive.Visibility = Telerik.WinControls.ElementVisibility.Hidden; orgTeam.Text = orgTeam.Name; orgTeam.Tag = element.Attribute("Branch").Value; orgTeam.Path = parentNode == null ? orgTeam.Name : string.Format("{0}|{1}", parentNode.Path, orgTeam.Name); currentLayoutSettings.Roots.Add(orgTeam); if (parentNode != null) { RadDiagramConnection connection = new RadDiagramConnection(); connection.ConnectionType = Telerik.Windows.Diagrams.Core.ConnectionType.Polyline; connection.Source = parentNode; connection.Target = orgTeam; this.radDiagram1.AddConnection(connection); } var teamMembers = this.GetTeamMembers(element, orgTeam); var position = new Telerik.Windows.Diagrams.Core.Point(10, 50); int memberCount = 0; foreach (var member in teamMembers) { this.radDiagram1.AddShape(member); orgTeam.Items.Add(member); member.Position = position; position.X += member.Width + 20; if (++memberCount % 2 == 0) { position = new Telerik.Windows.Diagrams.Core.Point(10, position.Y + member.Height + 10); } } orgTeam.IsCollapsedChanged += this.orgTeam_IsCollapsedChanged; return(orgTeam); }
private RadDiagramShape CreateMemberShape(OrgContainerShape team, XElement xmlNodeMember) { RadDiagramShape member = new RadDiagramShape(); member.IsConnectorsManipulationEnabled = false; member.ForeColor = Color.White; member.IsRotationEnabled = false; member.IsResizingEnabled = false; member.Shape = new Telerik.WinControls.RoundRectShape(0); member.BackColor = Color.LightBlue; member.Width = 190; member.Height = 50; member.Tag = team; member.Name = xmlNodeMember.Attribute("Name").Value; member.DiagramShapeElement.TextAlignment = ContentAlignment.MiddleLeft; member.DiagramShapeElement.ImageLayout = ImageLayout.None; member.DiagramShapeElement.Padding = new System.Windows.Forms.Padding(5, 2, 2, 0); member.DiagramShapeElement.Image = null;//this.GetImageFromResource(member.Name); member.DiagramShapeElement.ImageAlignment = ContentAlignment.MiddleLeft; member.DiagramShapeElement.TextImageRelation = TextImageRelation.ImageBeforeText; member.DiagramShapeElement.TextWrap = false; member.Text = string.Format(" {0}\n {1}", member.Name, xmlNodeMember.Attribute("Position").Value); return(member); }
private ObservableCollection <RadDiagramShape> GetTeamMembers(XContainer element, OrgContainerShape team) { var members = new ObservableCollection <RadDiagramShape>(); foreach (var xmlNodeMember in element.Elements("NodeMember")) { RadDiagramShape member = this.CreateMemberShape(team, xmlNodeMember); members.Add(member); } return(members); }