Ejemplo n.º 1
0
        private void updateNode(TreeNode tn)
        {
            RenderableObjectInfo roi = (RenderableObjectInfo)tn.Tag;

            roi.LastSpotted = System.DateTime.Now;
            if (tn.Checked != roi.Renderable.IsOn)
            {
                tn.Checked = roi.Renderable.IsOn;
                //treeView1.BeginInvoke(new UpdateCheckStateNodeDelegate(this.UpdateCheckStateNode), new object[] {tn, roi.Renderable.IsOn});
            }

            if (roi.Renderable is WorldWind.Renderable.RenderableObjectList)
            {
                WorldWind.Renderable.RenderableObjectList rol = (WorldWind.Renderable.RenderableObjectList)roi.Renderable;
                for (int i = 0; i < rol.Count; i++)
                {
                    WorldWind.Renderable.RenderableObject childRo = (WorldWind.Renderable.RenderableObject)rol.ChildObjects[i];
                    string absolutePath = GetAbsoluteRenderableObjectPath(childRo);

                    TreeNode correctNode = (TreeNode)m_NodeHash[absolutePath];
                    if (correctNode == null)
                    {
                        correctNode = new TreeNode(childRo.Name);
                        RenderableObjectInfo curRoi = new RenderableObjectInfo();
                        curRoi.Renderable = childRo;
                        correctNode.Tag   = curRoi;

                        m_NodeHash.Add(absolutePath, correctNode);
                        treeView1.BeginInvoke(new UpdateChildNodeDelegate(this.UpdateChildNodeTree), new object[] { tn, correctNode });
                    }

                    updateNode(correctNode);
                }
            }
        }
Ejemplo n.º 2
0
        private void nodeDownButton_Click(object sender, EventArgs e)
        {
            if (selectedNode != null && selectedNode != selectedNode.Parent.LastNode)
            {
                RenderableObjectInfo roi        = (RenderableObjectInfo)treeView1.SelectedNode.Tag;
                TreeNode             parentNode = selectedNode.Parent;
                TreeNode             belowNode  = parentNode.Nodes[selectedNode.Index + 1];
                TreeNode             cloneNode  = (TreeNode)selectedNode.Clone();
                int index = selectedNode.Index;
                parentNode.Nodes.RemoveAt(index + 1);
                parentNode.Nodes.RemoveAt(index);
                parentNode.Nodes.Insert(index, belowNode);
                parentNode.Nodes.Insert(index + 1, cloneNode);

                //Propagate to base tree
                RenderableObject     selectedRenderable = roi.Renderable;
                RenderableObjectList parentList         = selectedRenderable.ParentList;
                if (parentList != null)
                {
                    int indexRender = parentList.ChildObjects.IndexOf(selectedRenderable);
                    RenderableObject clonedRenderable = selectedRenderable;
                    RenderableObject belowRenderable  = (RenderableObject)parentList.ChildObjects[index + 1];
                    //Need to implement RemoveAt and InsertAt
                    parentList.ChildObjects.RemoveAt(indexRender + 1);
                    parentList.ChildObjects.RemoveAt(indexRender);
                    parentList.ChildObjects.Insert(indexRender, belowRenderable);
                    parentList.ChildObjects.Insert(indexRender + 1, clonedRenderable);
                }
            }
        }
 private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
 {
     if (e.Node != null && e.Node.Tag != null)
     {
         RenderableObjectInfo roi = (RenderableObjectInfo)e.Node.Tag;
         this.propertyGrid1.SelectedObject = roi.Renderable;
     }
 }
Ejemplo n.º 4
0
        private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            RenderableObjectInfo roi = (RenderableObjectInfo)e.Node.Tag;

            if (roi != null)
            {
                roi.Renderable.IsOn = e.Node.Checked;
            }
        }
Ejemplo n.º 5
0
        private void m_UpdateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                System.DateTime updateStart = System.DateTime.Now;

                for (int i = 0; i < m_WorldWindow.CurrentWorld.RenderableObjects.Count; i++)
                {
                    WorldWind.Renderable.RenderableObject curRo = (WorldWind.Renderable.RenderableObject)m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects[i];
                    if (i >= this.treeView1.Nodes.Count)
                    {
                        // Add a node
                        TreeNode             correctNode = new TreeNode(curRo.Name);
                        RenderableObjectInfo curRoi      = new RenderableObjectInfo();
                        curRoi.Renderable = curRo;
                        correctNode.Tag   = curRoi;

                        m_NodeHash.Add(correctNode.Text, correctNode);
                        this.treeView1.BeginInvoke(new AddTableTreeDelegate(this.AddTableTree), new object[] { correctNode });
                        updateNode(correctNode);
                    }
                    else
                    {
                        //compare nodes
                        TreeNode curTn = this.treeView1.Nodes[i];

                        RenderableObjectInfo curRoi = (RenderableObjectInfo)curTn.Tag;
                        if (curRoi.Renderable != null && curRoi.Renderable.Name == curRo.Name)
                        {
                            updateNode(curTn);
                            continue;
                        }
                        else
                        {
                            if (!m_NodeHash.Contains(curRo.Name))
                            {
                                //add it
                                curRoi            = new RenderableObjectInfo();
                                curRoi.Renderable = curRo;
                                curTn             = new TreeNode(curRo.Name);
                                curTn.Tag         = curRoi;

                                m_NodeHash.Add(curTn.Text, curTn);
                                this.treeView1.BeginInvoke(new InsertTableTreeDelegate(this.InsertTableTree), new object[] { i, curTn });
                            }
                            else
                            {
                                curTn = (TreeNode)m_NodeHash[curRo.Name];
                                try
                                {
                                    treeView1.BeginInvoke(new RemoveTableTreeDelegate(this.RemoveTableTree), new object[] { curTn });
                                }
                                catch
                                {}

                                treeView1.BeginInvoke(new InsertTableTreeDelegate(this.InsertTableTree), new object[] { i, curTn });
                            }
                        }

                        updateNode(curTn);
                    }
                }

                for (int i = m_WorldWindow.CurrentWorld.RenderableObjects.Count; i < this.treeView1.Nodes.Count; i++)
                {
                    this.treeView1.BeginInvoke(new RemoveAtTableTreeDelegate(this.RemoveAtTableTree), new object[] { i });
                }

                System.Collections.ArrayList deletionList = new ArrayList();
                foreach (TreeNode tn in m_NodeHash.Values)
                {
                    RenderableObjectInfo roi = (RenderableObjectInfo)tn.Tag;
                    if (roi == null || roi.Renderable == null || roi.LastSpotted < updateStart)
                    {
                        deletionList.Add(GetAbsoluteRenderableObjectPath(roi.Renderable));
                    }
                }

                foreach (string key in deletionList)
                {
                    m_NodeHash.Remove(key);
                }
            }
            catch
            {}
        }
Ejemplo n.º 6
0
		private void m_UpdateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
		{
			try
			{
				System.DateTime updateStart = System.DateTime.Now;

				for(int i = 0; i < m_WorldWindow.CurrentWorld.RenderableObjects.Count; i++)
				{
					WorldWind.Renderable.RenderableObject curRo = (WorldWind.Renderable.RenderableObject)m_WorldWindow.CurrentWorld.RenderableObjects.ChildObjects[i];
					if(i >= this.treeView1.Nodes.Count)
					{
						// Add a node
						TreeNode correctNode = new TreeNode(curRo.Name);
						RenderableObjectInfo curRoi = new RenderableObjectInfo();
						curRoi.Renderable = curRo;
						correctNode.Tag = curRoi;

						m_NodeHash.Add(correctNode.Text, correctNode);
						this.treeView1.BeginInvoke(new AddTableTreeDelegate(this.AddTableTree), new object[] {correctNode});

						updateNode(correctNode);
					}
					else
					{
						//compare nodes
						TreeNode curTn = this.treeView1.Nodes[i];

						RenderableObjectInfo curRoi = (RenderableObjectInfo)curTn.Tag;
						if(curRoi.Renderable != null && curRoi.Renderable.Name == curRo.Name)
						{
							updateNode(curTn);
							continue;
						}
						else
						{
							if(!m_NodeHash.Contains(curRo.Name))
							{	
								//add it
								curRoi = new RenderableObjectInfo();
								curRoi.Renderable = curRo;
								curTn = new TreeNode(curRo.Name);
								curTn.Tag = curRoi;

								m_NodeHash.Add(curTn.Text, curTn);
								this.treeView1.BeginInvoke(new InsertTableTreeDelegate(this.InsertTableTree), new object[] {i, curTn});
							}
							else
							{
								curTn = (TreeNode)m_NodeHash[curRo.Name];
								try
								{
									treeView1.BeginInvoke(new RemoveTableTreeDelegate(this.RemoveTableTree), new object[] {curTn});
								}
								catch
								{}
							
								treeView1.BeginInvoke(new InsertTableTreeDelegate(this.InsertTableTree), new object[] {i, curTn});
							}
						}

						updateNode(curTn);
					}
				
				}

				for(int i = m_WorldWindow.CurrentWorld.RenderableObjects.Count; i < this.treeView1.Nodes.Count; i++)
				{
					this.treeView1.BeginInvoke(new RemoveAtTableTreeDelegate(this.RemoveAtTableTree), new object[] {i});
				}

				System.Collections.ArrayList deletionList = new ArrayList();
				foreach(TreeNode tn in m_NodeHash.Values)
				{
					RenderableObjectInfo roi = (RenderableObjectInfo)tn.Tag;
					if(roi == null || roi.Renderable == null || roi.LastSpotted < updateStart)
					{
						deletionList.Add(GetAbsoluteRenderableObjectPath(roi.Renderable));
					}
				}

				foreach(string key in deletionList)
				{
					m_NodeHash.Remove(key);
				}
			}
			catch
			{}
		}
Ejemplo n.º 7
0
		private void updateNode(TreeNode tn)
		{

			RenderableObjectInfo roi = (RenderableObjectInfo)tn.Tag;

			roi.LastSpotted = System.DateTime.Now;
			if(tn.Checked != roi.Renderable.IsOn)
			{
				tn.Checked = roi.Renderable.IsOn;
				//treeView1.BeginInvoke(new UpdateCheckStateNodeDelegate(this.UpdateCheckStateNode), new object[] {tn, roi.Renderable.IsOn});
			}

			if(roi.Renderable is WorldWind.Renderable.RenderableObjectList)
			{
				WorldWind.Renderable.RenderableObjectList rol = (WorldWind.Renderable.RenderableObjectList)roi.Renderable;
				for(int i = 0; i < rol.Count; i++)
				{
					WorldWind.Renderable.RenderableObject childRo = (WorldWind.Renderable.RenderableObject)rol.ChildObjects[i];
					string absolutePath = GetAbsoluteRenderableObjectPath(childRo);

					TreeNode correctNode = (TreeNode)m_NodeHash[absolutePath];
					if(correctNode == null)
					{
						correctNode = new TreeNode(childRo.Name);
						RenderableObjectInfo curRoi = new RenderableObjectInfo();
						curRoi.Renderable = childRo;
						correctNode.Tag = curRoi;

						m_NodeHash.Add(absolutePath, correctNode);
						treeView1.BeginInvoke(new UpdateChildNodeDelegate(this.UpdateChildNodeTree), new object[] {tn, correctNode});
					}

					updateNode(correctNode);
					
				}
			}
		}