Example #1
0
        void OnGEMSProjectDataChanged(object sender, GEMSProject.DataChangedEventArgs e)
        {
            switch (e.changedType)
            {
            case GEMSProject.DataChangedEventArgs.DataChangeType.Initialized:
                CreateSingleRenders( );
                CreateGridRender( );
                CreateParallelRender( );
                isFit = true;

                break;

            default:
                UpdateSingleRenders(e);
                break;
            }
        }
Example #2
0
        private void UpdateSingleRenders(GEMSProject.DataChangedEventArgs e)
        {
            if (e.changedSingle is GEMSSingle)
            {
                GEMSSingle changedSingle = e.changedSingle as GEMSSingle;

                switch (e.changedType)
                {
                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleCutted:
                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleDeleted:
                {
                    //Delete one single painter
                    GEMSSingleRender targetSingleRender = null;
                    foreach (GEMSSingleRender singleRender in singleRenders)
                    {
                        if (singleRender.Source == changedSingle)
                        {
                            targetSingleRender = singleRender;
                        }
                    }
                    this.singleRenders.Remove(targetSingleRender);
                    targetSingleRender.Dispose( );
                }
                break;

                case GEMSProject.DataChangedEventArgs.DataChangeType.SinglePasted:
                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleCreated:
                    //Create one single painter
                {
                    GEMSSingleRender newSingleRender = new GEMSSingleRender(d3d, changedSingle, this);
                    newSingleRender.Initialize( );
                    this.singleRenders.Add(newSingleRender);
                }
                break;
                }
            }

            //Re-generate bounding box
            GenerateBoundingBox( );

            if (currentMode == SceneMode.Preview)
            {
                isFit = true;
            }
        }
Example #3
0
        /// <summary>
        /// Update the tree view controls based the new information of project
        /// </summary>
        void OnGEMSProjectDataChanged(object sender, GEMSProject.DataChangedEventArgs e)
        {
            if (sender is GEMSProject)
            {
                switch (e.changedType)
                {
                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleEdited:
                {
                    if ((tvObjects.SelectedNode.Tag is GEMSSingle) && (tvObjects.SelectedNode.Tag == e.changedSingle))
                    {
                        tvObjects.SelectedNode.Text = e.changedSingle.Name;
                        break;
                    }
                }
                break;

                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleCutted:
                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleDeleted:
                {
                    //Find the corresponding tree node
                    TreeNode removedNode = null;
                    int      index       = 0;
                    foreach (TreeNode node in singleNodes.Nodes)
                    {
                        if (node.Tag == e.changedSingle)
                        {
                            removedNode = node;
                            break;
                        }
                        index++;
                    }

                    if (removedNode != null)
                    {
                        singleNodes.Nodes.Remove(removedNode);

                        if (index == singleNodes.Nodes.Count && index > 0)
                        {
                            index = singleNodes.Nodes.Count - 1;
                            tvObjects.SelectedNode = singleNodes.Nodes[index];
                        }
                        else
                        {
                            tvObjects.SelectedNode = root;
                        }
                    }
                    break;
                }

                case GEMSProject.DataChangedEventArgs.DataChangeType.SinglePasted:
                case GEMSProject.DataChangedEventArgs.DataChangeType.SingleCreated:
                {
                    if (e != null && e.changedSingle != null)
                    {
                        //Create a new node
                        TreeNode newSingleNode = new TreeNode(e.changedSingle.Name);
                        newSingleNode.Tag = e.changedSingle;

                        foreach (GeometryOperation operation in e.changedSingle.Operations)
                        {
                            TreeNode operationNode = new TreeNode(operation.Name.ToString());
                            operationNode.Tag = operation;

                            newSingleNode.Nodes.Add(operationNode);
                        }

                        //Add the single node at the tree tail
                        this.singleNodes.Nodes.Add(newSingleNode);

                        //Select and expand it
                        newSingleNode.Expand();
                        tvObjects.SelectedNode = newSingleNode;
                    }
                    break;
                }

                case GEMSProject.DataChangedEventArgs.DataChangeType.Initialized:
                {
                    //Clear all the old nodes
                    singleNodes.Nodes.Clear();

                    root.Tag = m_project.Environment;

                    //Add the single nodes to the tree
                    foreach (GEMSSingle single in m_project.Singles)
                    {
                        TreeNode singleNode = new TreeNode(single.Name);
                        singleNode.Tag = single;

                        foreach (GeometryOperation operation in single.Operations)
                        {
                            TreeNode operationNode = new TreeNode(operation.Name.ToString());
                            operationNode.Tag = operation;

                            singleNode.Nodes.Add(operationNode);
                        }

                        singleNodes.Nodes.Add(singleNode);
                    }

                    singleNodes.Expand();
                    this.tvObjects.SelectedNode     = root;
                    m_project.CurrentSelectedObject = root.Tag;
                }
                break;
                }
            }
        }