protected virtual void DoEdit(object sender, System.EventArgs e) { try { Gtk.TreeIter itr; Gtk.TreeModel model; if (wptView.Selection.GetSelected (out model, out itr)) { Waypoint wpt = (Waypoint)model.GetValue (itr, 0); if (wpt is Geocache) { m_mon.ModifyCache(); return; } WaypointDialog dlg = new WaypointDialog (); String origname = wpt.Name; dlg.SetPoint (wpt); if ((int)ResponseType.Ok == dlg.Run ()) { wpt = dlg.GetPoint (); CacheStore store = Engine.getInstance().Store; if (wpt.Name == origname) store.UpdateWaypointAtomic (wpt); else { store.DeleteWaypoint(origname); store.UpdateWaypointAtomic(wpt); } dlg.Dispose (); UpdateCacheInfo (); } } } catch (Exception ex) { UIMonitor.ShowException (ex); } }
protected virtual void doAdd(object sender, System.EventArgs e) { try { Waypoint newPoint = new Waypoint (); Geocache parent = m_mon.SelectedCache; newPoint.Symbol = "Final Location"; newPoint.Parent = parent.Name; newPoint.Lat = parent.Lat; newPoint.Lon = parent.Lon; String name = "FL" + parent.Name.Substring (2); WaypointDialog dlg = new WaypointDialog (); if (m_mon.Configuration.IgnoreWaypointPrefixes) { name = parent.Name; dlg.IgnorePrefix = true; } name = Engine.getInstance().Store.GenerateNewName(name); newPoint.Name = name; dlg.SetPoint (newPoint); if ((int)ResponseType.Ok == dlg.Run ()) { newPoint = dlg.GetPoint (); if (newPoint.Symbol == "Final Location") parent.HasFinal = true; CacheStore store = Engine.getInstance ().Store; store.AddWaypointAtomic (newPoint); dlg.Dispose (); UpdateCacheInfo (); } } catch (Exception ex) { UIMonitor.ShowException (ex); } }