//------------------------------------------------------------------------ private void MouseDownAddLine(EarthMouseEventArgs args) { args.IsProcessed = true; if (args.Buttons == System.Windows.Forms.MouseButtons.Left) { if (m_lineEnCoursEdition == null) { m_lineEnCoursEdition = new CGPSLine(m_carteEditee.ContexteDonnee); m_lineEnCoursEdition.CreateNewInCurrentContexte(); m_lineEnCoursEdition.Libelle = I.T("New line|20056"); m_lineEnCoursEdition.Carte = m_carteEditee; CGPSLineTrace trace = m_lineEnCoursEdition.DetailLigne; trace.PointDepart = new SLatLong(args.Latitude, args.Longitude); TreeNode node = new TreeNode(); FillNode(node, m_lineEnCoursEdition); m_arbreCartographie.Nodes[0].Nodes.Add(node); m_arbreCartographie.SelectedNode = node; m_wndMap.ShowMouseMarker(args.Latitude, args.Longitude); } else { CGPSLineSegment segment = new CGPSLineSegment(m_lineEnCoursEdition.DetailLigne); segment.PointDestination = new SLatLong(args.Latitude, args.Longitude); CGPSLineTrace trace = m_lineEnCoursEdition.DetailLigne; if (trace.Segments.Count() > 0) { CGPSLineSegment lastSeg = trace.Segments.ElementAt(trace.Segments.Count() - 1); segment.Width = lastSeg.Width; segment.Couleur = lastSeg.Couleur; } m_wndMap.ShowMouseMarker(args.Latitude, args.Longitude); trace.AddSegment(segment); foreach (IMapItem item in m_lineEnCoursEdition.FindMapItems(m_mapDatabase)) { item.Layer.RemoveItem(item); m_wndMap.DeleteItem(item); } foreach (IMapItem item in m_lineEnCoursEdition.CreateMapItems(m_mapDatabase.GetLayer(m_carteEditee.IdUniversel, true))) { m_wndMap.AddMapItem(item); } TreeNode node = FindNode(m_lineEnCoursEdition); if (node != null) { FillNode(node, m_lineEnCoursEdition); } node = FindNode(segment); if (node != null) { m_arbreCartographie.SelectedNode = node; } } } }
public void Init(object item) { m_bIsInInit = true; m_ligneEditee = item as CGPSLine; m_txtTypeLigne.Init(typeof(CGPSTypeLigne), "Libelle", false); if (m_ligneEditee == null) { Visible = false; } else { RefreshData(); } m_bIsInInit = false; }
//------------------------------------------------------------------------ private void FillNode(TreeNode node, CGPSLine line) { m_bIsFillingTree = true; node.Nodes.Clear(); node.Text = line.Libelle; node.ImageIndex = 2; node.SelectedImageIndex = 2; node.Tag = line; CGPSLineTrace trace = line.DetailLigne; int nIndex = 1; foreach (CGPSLineSegment segment in trace.Segments) { TreeNode nodeSegment = new TreeNode(); FillNode(nodeSegment, segment); node.Nodes.Add(nodeSegment); } m_bIsFillingTree = false; }
//------------------------------------------------------------------------ private void EndLineEnCours() { if (m_lineEnCoursEdition != null) { foreach (IMapItem item in m_lineEnCoursEdition.FindMapItems(m_mapDatabase)) { item.Layer.RemoveItem(item); m_wndMap.DeleteItem(item); } m_lineEnCoursEdition.DetailLigne = m_lineEnCoursEdition.DetailLigne; foreach (IMapItem item in m_lineEnCoursEdition.CreateMapItems(m_mapDatabase.GetLayer(m_carteEditee.IdUniversel, true))) { m_wndMap.AddMapItem(item); } TreeNode node = FindNode(m_lineEnCoursEdition); if (node != null) { FillNodeFromObjet(node, m_lineEnCoursEdition); } m_lineEnCoursEdition = null; m_wndMap.HideMouseMarker(); } }