//------------------------------------------------------------------------ private void m_menuAddAPoint_Click(object sender, EventArgs e) { object tag = m_currentSelectedMapItem != null ? m_currentSelectedMapItem.Tag : null; CGPSLineSegment segment = tag as CGPSLineSegment; if (segment != null) { segment.DiviseSegment(); TreeNode node = m_arbreCartographie.SelectedNode; node = GetNodeIElementDeGpsCarte(node); if (node != null) { IElementDeGPSCarte elt = node.Tag as IElementDeGPSCarte; if (elt != null) { foreach (IMapItem item in elt.FindMapItems(m_mapDatabase)) { item.Layer.RemoveItem(item); m_wndMap.DeleteItem(item); } foreach (IMapItem item in elt.CreateMapItems(m_mapDatabase.GetLayer(m_carteEditee.IdUniversel))) { m_wndMap.AddMapItem(item); } FillNodeFromObjet(node, elt); DisplayItemProperties(node); } } } }
//------------------------------------------------------------------------ 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; } } } }
private static void FillNode(TreeNode nodeSegment, CGPSLineSegment segment) { nodeSegment.Text = segment.Libelle.Length == 0 ? I.T("Segment|20053") : segment.Libelle; if (segment.TypeLigne != null) { nodeSegment.Text += "(" + segment.TypeLigne.Libelle + ")"; } nodeSegment.ImageIndex = nodeSegment.SelectedImageIndex = 3; nodeSegment.Tag = segment; nodeSegment.BackColor = segment.Couleur; nodeSegment.ForeColor = CUtilCouleur.GetCouleurVisibleSur(segment.Couleur); }
public void Init(object item) { m_bIsInInit = true; m_segmentEdite = item as CGPSLineSegment; m_txtTypeLigne.Init(typeof(CGPSTypeLigne), "Libelle", false); if (m_segmentEdite == null) { Visible = false; } else { RefreshData(); } m_bIsInInit = false; }