示例#1
0
        private void PrintHierarchy(IIfcObjectDefinition o, XTreeNode parentNode)
        {
            //textBox1.Text += ($"{GetIndent(level)}{o.Name} [{o.GetType().Name}]");
            var spatialElement = o as IIfcSpatialStructureElement;

            if (spatialElement != null)
            {
                var containedElements = spatialElement.ContainsElements.SelectMany(rel => rel.RelatedElements);
                foreach (var element in containedElements)
                {
                    parentNode.ChildNodes.Add(CreateObject(element));
                    //textBox1.Text += ($"{GetIndent(level)}    ->{element.Name} [{element.GetType().Name}]");
                }
            }

            foreach (var item in o.IsDecomposedBy.SelectMany(r => r.RelatedObjects))
            {
                spatialElement = item as IIfcSpatialStructureElement;
                if (spatialElement != null)
                {
                    XTreeNode childNode = CreateObject(item);
                    parentNode.ChildNodes.Add(childNode);
                    PrintHierarchy(item, childNode);
                }
            }
        }
        /// <summary>
        /// 刷新树节点并重设选中节点
        /// </summary>
        private void RefreshTreeNode()
        {
            XTreeNode myItem    = t_tvw_Module.SelectedItem as XTreeNode;
            string    myTag     = string.Empty;
            string    parentTag = string.Empty;

            if (myItem == null && m_MQuery != null)
            {
                myTag = m_MQuery.BillType;
            }
            else
            {
                myTag = myItem.Tag.ToString();
                if (myItem.Parent != null)
                {
                    parentTag = myItem.Parent.Tag.ToString();
                }
            }
            BindTreeNode();
            SetSelected(t_tvw_Module.Nodes, myTag, parentTag);
            if (myItem == null && m_MQuery != null)
            {
                QueryMethod();
            }
        }
示例#3
0
        /// <summary>Update the tree node bound to an entity. If no tree node is bound, then a new one is bound.</summary>
        /// <param name="xelement">The entity to be updated.</param>
        private void UpdateEntity(EntityBase entity)
        {
            EntityBase visibleEntity = entity.GetVisibleAncestor();

            if (visibleEntity == null)
            {
                // Then the top would be the session element
                ClearTreeNodes(treeView1.Nodes);
                AddChildTreeNodes(treeView1.Nodes, model.session.Entity);
            }
            else
            {
                TreeNode entityNode = visibleEntity.GetValue(EntityTreeNodeProperty);
                if (entityNode == null)
                {
                    entityNode = new XTreeNode(visibleEntity);
                    visibleEntity.SetValue(EntityTreeNodeProperty, entityNode);
                }
                else
                {
                    Debug.Assert(visibleEntity.DataElement.Annotation <XTreeNode>() == entityNode, "Somehow the element's tree node annotation got out of sync with the entity.");

                    // A tree node instance already exists, we'll need to rebind
                    ClearTreeNodes(entityNode.Nodes);
                }

                BindTreeNode(visibleEntity);
                AddChildTreeNodes(entityNode.Nodes, visibleEntity);
            }
        }
示例#4
0
        public XTreeNode CreateProjectHierarchy(IfcProject project)
        {
            XTreeNode projectNode = null;

            if (project != null)
            {
                projectNode = CreateObject(project);

                PrintHierarchy(project, projectNode);
            }
            return(projectNode);
        }
示例#5
0
        private EntityBase GetSelectedEntity()
        {
            XTreeNode treenode = (XTreeNode)treeView1.SelectedNode;

            if (treenode != null)
            {
                return(treenode.DataEntity);
            }
            else
            {
                return(null);
            }
        }
 /// <summary>
 /// 右键点击前事件
 /// </summary>
 /// <param name="sender">事件对象</param>
 /// <param name="e">事件参数</param>
 private void t_pgg_Bill_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
 {
     try
     {
         ArrayList statusList = new ArrayList();
         statusList.Add("已入库");
         statusList.Add("回收站");
         statusList.Add("归档");
         XTreeNode myItem    = t_tvw_Module.SelectedItem as XTreeNode;
         string    myTag     = string.Empty;
         string    parentTag = string.Empty;
         if (myItem == null && m_MQuery != null)
         {
             myTag = m_MQuery.BillType;
         }
         else
         {
             myTag = myItem.Tag.ToString();
             if (myItem.Parent != null)
             {
                 parentTag = myItem.Parent.Tag.ToString();
             }
         }
         string billStatus = string.Empty;
         if (myTag == "Q" || parentTag == "Q")
         {
             PT_B_Quotation myModel = (PT_B_Quotation)t_pgg_Bill.SelectedItem;
             statusList.Remove(SetBillStatus(myModel.Bill_Status));
             billStatus = "Q";
         }
         else
         {
             PT_B_Project myModel = (PT_B_Project)t_pgg_Bill.SelectedItem;
             statusList.Remove(SetBillStatus(myModel.Bill_Status));
             billStatus = "P";
         }
         t_tsb_ChangeState.Items.Clear();
         foreach (string status in statusList)
         {
             MenuItem item = new MenuItem();
             item.Header = status;
             item.Tag    = billStatus;
             item.Click += Item_Click;
             t_tsb_ChangeState.Items.Add(item);
         }
     }
     catch (Exception ex)
     {
         XMessageBox.Exception(ex);
     }
 }
 /// <summary>
 /// 表格行鼠标双击事件
 /// </summary>
 /// <param name="sender">事件对象</param>
 /// <param name="e">事件参数</param>
 private void t_pgg_Bill_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     try
     {
         if (t_pgg_Bill.SelectedItem == null)
         {
             return;
         }
         XTreeNode myItem    = t_tvw_Module.SelectedItem as XTreeNode;
         string    myTag     = string.Empty;
         string    parentTag = string.Empty;
         if (myItem == null && m_MQuery != null)
         {
             myTag = m_MQuery.BillType;
         }
         else
         {
             myTag = myItem.Tag.ToString();
             if (myItem.Parent != null)
             {
                 parentTag = myItem.Parent.Tag.ToString();
             }
         }
         if (myTag == "Q" || parentTag == "Q")
         {
             PT_B_Quotation myModel = (PT_B_Quotation)t_pgg_Bill.SelectedItem;
             FrmQuotation   myForm  = new FrmQuotation();
             myForm.PTBQuotation = myModel;
             myForm.ShowDialog();
             m_Entities.Dispose();
             m_Entities = new ProjectTrackingEntities();
             RefreshTreeNode();
         }
         else
         {
             PT_B_Project myModel = (PT_B_Project)t_pgg_Bill.SelectedItem;
             FrmProject   myForm  = new FrmProject();
             myForm.PTBProject = myModel;
             myForm.ShowDialog();
             m_Entities.Dispose();
             m_Entities = new ProjectTrackingEntities();
             RefreshTreeNode();
         }
     }
     catch (Exception ex)
     {
         XMessageBox.Exception(ex);
     }
 }
示例#8
0
 private void Clear()
 {
     if (model.xdocument != null)
     {
         foreach (XElement x in model.xdocument.Descendants())
         {
             XTreeNode treenode = x.Annotation <XTreeNode>();
             if (treenode != null)
             {
                 treenode.Remove();
                 x.RemoveAnnotations <XTreeNode>();
             }
         }
     }
 }
示例#9
0
        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            XTreeNode node = (XTreeNode)e.Node;

            if (e.Button == MouseButtons.Left)
            {
                // If the entity is already selected in the tree
                // but not in the model.selection context, then force
                // it to be selected
                if (node == treeView1.SelectedNode && model.selection.current.SelectedEntity != node.DataEntity)
                {
                    model.selection.Update(this, node.DataEntity);
                }
            }
            else if (e.Button == MouseButtons.Right)
            {
                PopupMenu.ShowContextMenu(contextMenuStrip1, node.DataEntity);
            }
        }
示例#10
0
        XTreeNode CreateObject(IIfcObjectDefinition project)
        {
            XTreeNode projectNode = new XTreeNode(project.Name, project.GlobalId);

            return(projectNode);
        }
示例#11
0
        /// <summary>
        /// 加载业务数据
        /// </summary>
        private void LoadBusinessData()
        {
            XTreeNode myItem = t_tvw_Module.SelectedItem as XTreeNode;

            if (myItem == null)
            {
                return;
            }

            string billStatus = myItem.Tag.ToString();

            DateTime date = new DateTime();

            if (myItem.Nodes.Count == 0)
            {
                XTreeNode myParent     = myItem.Parent as XTreeNode;
                string    parentStatus = myParent.Tag.ToString();
                if (parentStatus == "Q")
                {
                    if (m_CurrentTypes != DateFilterTypes.Custom)
                    {
                        date = GetFilterDate();
                        var temp = from p in m_Entities.PT_B_Quotation
                                   where p.Bill_Status == billStatus && p.Quotation_Date > date
                                   orderby p.Quotation_No
                                   select p;
                        GirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    else
                    {
                        var temp = from p in m_Entities.PT_B_Quotation
                                   where p.Bill_Status == billStatus && p.Quotation_Date >= t_dtp_StartDate.Value && p.Quotation_Date <= t_dtp_EndDate.Value
                                   orderby p.Quotation_No
                                   select p;
                        GirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    t_pgg_Bill.SelectedIndex = -1;
                    t_pgg_Bill.StyleConfig   = GirdStyleConfig;
                    t_pgg_Bill.SelectedIndex = 0;
                }
                else if (parentStatus == "P")
                {
                    if (m_CurrentTypes != DateFilterTypes.Custom)
                    {
                        date = GetFilterDate();
                        var temp = from p in m_Entities.PT_B_Project
                                   where p.Bill_Status == billStatus && p.Quotation_Date > date
                                   orderby p.Project_No
                                   select p;
                        ProjectGirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    else
                    {
                        var temp = from p in m_Entities.PT_B_Project
                                   where p.Bill_Status == billStatus && p.Quotation_Date >= t_dtp_StartDate.Value && p.Quotation_Date <= t_dtp_EndDate.Value
                                   orderby p.Project_No
                                   select p;
                        ProjectGirdStyleConfig.ItemsSource = temp.ToList();
                    }

                    t_pgg_Bill.SelectedIndex = -1;
                    t_pgg_Bill.StyleConfig   = ProjectGirdStyleConfig;
                    t_pgg_Bill.SelectedIndex = 0;
                }
            }
            else
            {
                if (billStatus == "Q")
                {
                    if (m_CurrentTypes != DateFilterTypes.Custom)
                    {
                        date = GetFilterDate();
                        var temp = from p in m_Entities.PT_B_Quotation
                                   where p.Quotation_Date > date
                                   orderby p.Quotation_No
                                   select p;
                        GirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    else
                    {
                        var temp = from p in m_Entities.PT_B_Quotation
                                   where p.Quotation_Date >= t_dtp_StartDate.Value && p.Quotation_Date <= t_dtp_EndDate.Value
                                   orderby p.Quotation_No
                                   select p;
                        GirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    t_pgg_Bill.SelectedIndex = -1;
                    t_pgg_Bill.StyleConfig   = GirdStyleConfig;
                    t_pgg_Bill.SelectedIndex = 0;
                }
                else if (billStatus == "P")
                {
                    if (m_CurrentTypes != DateFilterTypes.Custom)
                    {
                        date = GetFilterDate();
                        var temp = from p in m_Entities.PT_B_Project
                                   where p.Quotation_Date > date
                                   orderby p.Quotation_No
                                   select p;
                        ProjectGirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    else
                    {
                        var temp = from p in m_Entities.PT_B_Project
                                   where p.Quotation_Date >= t_dtp_StartDate.Value && p.Quotation_Date <= t_dtp_EndDate.Value
                                   orderby p.Quotation_No
                                   select p;
                        ProjectGirdStyleConfig.ItemsSource = temp.ToList();
                    }
                    t_pgg_Bill.SelectedIndex = -1;
                    t_pgg_Bill.StyleConfig   = ProjectGirdStyleConfig;
                    t_pgg_Bill.SelectedIndex = 0;
                }
            }
        }
示例#12
0
        /// <summary>
        /// 绑定树节点方法
        /// </summary>
        private void BindTreeNode()
        {
            //计算报价单各状态节点数量
            CalculateQuotationCount();

            List <XTreeNode> myCollect = new List <XTreeNode>();
            XTreeNode        myModel   = new XTreeNode();

            myModel.Text          = "报价单" + "[" + TreeNodeDictionary["Q"] + "]";
            myModel.NormalImage   = "/Resources/CloseFloder.png";
            myModel.ExpandedImage = "/Resources/OpenFloder.png";
            myModel.Tag           = "Q";
            myModel.Nodes         = new List <XTreeNode>();
            myCollect.Add(myModel);

            XTreeNode mySub = new XTreeNode();

            mySub.Text          = "已入库" + "[" + TreeNodeDictionary["1"] + "]";
            mySub.NormalImage   = "/Resources/Info.png";
            mySub.ExpandedImage = "/Resources/Info.png";
            mySub.Tag           = "1";
            myModel.Nodes.Add(mySub);
            XTreeNode mySub2 = new XTreeNode();

            mySub2.Text          = "回收站" + "[" + TreeNodeDictionary["R"] + "]";
            mySub2.NormalImage   = "/Resources/Info.png";
            mySub2.ExpandedImage = "/Resources/Info.png";
            mySub2.Tag           = "R";
            myModel.Nodes.Add(mySub2);
            XTreeNode mySub3 = new XTreeNode();

            mySub3.Text          = "归档" + "[" + TreeNodeDictionary["A"] + "]";
            mySub3.NormalImage   = "/Resources/Info.png";
            mySub3.ExpandedImage = "/Resources/Info.png";
            mySub3.Tag           = "A";
            myModel.Nodes.Add(mySub3);

            //计算项目单各状态节点数量
            CalculateProjectCount();

            myModel               = new XTreeNode();
            myModel.Text          = "项目单" + "[" + TreeNodeProjectDic["P"] + "]";
            myModel.NormalImage   = "/Resources/CloseFloder.png";
            myModel.ExpandedImage = "/Resources/OpenFloder.png";
            myModel.Tag           = "P";
            myModel.Nodes         = new List <XTreeNode>();
            myCollect.Add(myModel);

            mySub               = new XTreeNode();
            mySub.Text          = "已入库" + "[" + TreeNodeProjectDic["1"] + "]";
            mySub.NormalImage   = "/Resources/Info.png";
            mySub.ExpandedImage = "/Resources/Info.png";
            mySub.Tag           = "1";
            myModel.Nodes.Add(mySub);
            mySub2               = new XTreeNode();
            mySub2.Text          = "回收站" + "[" + TreeNodeProjectDic["R"] + "]";
            mySub2.NormalImage   = "/Resources/Info.png";
            mySub2.ExpandedImage = "/Resources/Info.png";
            mySub2.Tag           = "R";
            myModel.Nodes.Add(mySub2);
            mySub3               = new XTreeNode();
            mySub3.Text          = "归档" + "[" + TreeNodeProjectDic["A"] + "]";
            mySub3.NormalImage   = "/Resources/Info.png";
            mySub3.ExpandedImage = "/Resources/Info.png";
            mySub3.Tag           = "A";
            myModel.Nodes.Add(mySub3);

            t_tvw_Module.BindTreeView(myCollect);
            SetNodeExpandedState(t_tvw_Module, true);
        }
示例#13
0
        /// <summary>
        /// 删除按钮事件
        /// </summary>
        /// <param name="sender">事件对象</param>
        /// <param name="e">事件参数</param>
        private void t_btn_Delete_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (t_pgg_Bill.SelectedItem == null)
                {
                    XMessageBox.Warning("未选中一条单据!", this);
                    return;
                }
                XTreeNode myItem    = t_tvw_Module.SelectedItem as XTreeNode;
                string    myTag     = string.Empty;
                string    parentTag = string.Empty;
                if (myItem == null && m_MQuery != null)
                {
                    myTag = m_MQuery.BillType;
                }
                else
                {
                    myTag = myItem.Tag.ToString();
                    if (myItem.Parent != null)
                    {
                        parentTag = myItem.Parent.Tag.ToString();
                    }
                }
                if (myTag == "Q" || parentTag == "Q")
                {
                    PT_B_Quotation myModel = (PT_B_Quotation)t_pgg_Bill.SelectedItem;
                    if (myModel.Bill_Status != "R")
                    {
                        MessageResult myResult = XMessageBox.Ask("确认删除当前选中的单据?", this);

                        if (myResult == MessageResult.Yes)
                        {
                            myModel.Bill_Status = "R";
                            m_Entities.SaveChanges();
                            RefreshTreeNode();
                        }
                    }
                    else
                    {
                        MessageResult myResult = XMessageBox.Ask("确认彻底删除当前选中的单据?", this);
                        if (myResult == MessageResult.Yes)
                        {
                            m_Entities.PT_B_Quotation.Remove(myModel);
                            m_Entities.SaveChanges();
                            RefreshTreeNode();
                        }
                    }
                }
                else
                {
                    PT_B_Project myModel = (PT_B_Project)t_pgg_Bill.SelectedItem;
                    if (myModel.Bill_Status != "R")
                    {
                        MessageResult myResult = XMessageBox.Ask("确认删除当前选中的单据?", this);

                        if (myResult == MessageResult.Yes)
                        {
                            myModel.Bill_Status = "R";
                            m_Entities.SaveChanges();
                            RefreshTreeNode();
                        }
                    }
                    else
                    {
                        MessageResult myResult = XMessageBox.Ask("确认彻底删除当前选中的单据?", this);
                        if (myResult == MessageResult.Yes)
                        {
                            m_Entities.PT_B_Project.Remove(myModel);
                            m_Entities.SaveChanges();
                            RefreshTreeNode();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                XMessageBox.Exception(ex);
            }
        }
示例#14
0
        /// <summary>
        /// 当前日期范围单选按钮选中状态改变时调用的方法
        /// </summary>
        /// <param name="sender">事件对象</param>
        /// <param name="e">事件参数</param>
        private void OnDateFilterCheckedChanged(object sender, RoutedEventArgs e)
        {
            XRadioButton myControl = sender as XRadioButton;

            if (myControl == null)
            {
                return;
            }
            if (myControl.IsChecked == false)
            {
                return;
            }

            string type = string.Empty;

            switch (myControl.Name)
            {
            case "t_rdo_Today":
                type = "Today";
                break;

            case "t_rdo_Week":
                type = "Week";
                break;

            case "t_rdo_Month":
                type = "Month";
                break;

            case "t_rdo_All":
                type = "All";
                break;

            case "t_rdo_Custom":
                type = "Custom";
                break;
            }

            m_CurrentTypes = (DateFilterTypes)Enum.Parse(typeof(DateFilterTypes), type, true);
            if (m_CurrentTypes == DateFilterTypes.Custom)
            {
                t_dtp_StartDate.IsEnabled = true;
                t_dtp_EndDate.IsEnabled   = true;
            }
            else
            {
                t_dtp_StartDate.IsEnabled = false;
                t_dtp_EndDate.IsEnabled   = false;
            }
            XTreeNode myItem    = t_tvw_Module.SelectedItem as XTreeNode;
            string    myTag     = string.Empty;
            string    parentTag = string.Empty;

            BindTreeNode();
            if (myItem == null && m_MQuery != null)
            {
                myTag = m_MQuery.BillType;
                SetSelected(t_tvw_Module.Nodes, myTag, parentTag);
            }
            else if (myItem != null)
            {
                myTag = myItem.Tag.ToString();
                if (myItem.Parent != null)
                {
                    parentTag = myItem.Parent.Tag.ToString();
                }
                SetSelected(t_tvw_Module.Nodes, myTag, parentTag);
            }
        }