/// <summary> /// Stop editing. /// </summary> public static void StopEditing() { Editor.activeLayer = null; Editor.isEditing = false; Display.ClearElement(Editor.Edits.GetAllGraphicElements()); Editor.Edits.Clear(); Display.ClearElement(Editor.Selections.GetAllGraphicElements()); Editor.Selections.Clear(); StopEditingButton stopEditingButton = AddIn.FromID <StopEditingButton>(ThisAddIn.IDs.StopEditingButton); stopEditingButton.IsEnabled = false; StartEditingButton startEditionButton = AddIn.FromID <StartEditingButton>(ThisAddIn.IDs.StartEditingButton); startEditionButton.IsEnabled = true; SaveEditsButton saveEditsButton = AddIn.FromID <SaveEditsButton>(ThisAddIn.IDs.SaveEditsButton); saveEditsButton.IsEnabled = false; SaveEditsAsButton saveEditsAsButton = AddIn.FromID <SaveEditsAsButton>(ThisAddIn.IDs.SaveEditsAsButton); saveEditsAsButton.IsEnabled = false; EditTool selectTool = AddIn.FromID <EditTool>(ThisAddIn.IDs.EditTool); selectTool.IsEnabled = false; ShowEditsButton showEditsButton = AddIn.FromID <ShowEditsButton>(ThisAddIn.IDs.ShowEditsButton); showEditsButton.IsEnabled = false; EditForm editForm = AddIn.FromID <EditForm.AddinImpl>(ThisAddIn.IDs.EditForm).UI; editForm.ClearValues(); editForm.SetLayer(""); }
protected override bool OnDeactivate() { try { Display.ClearElement(Editor.Selections.GetAllGraphicElements()); Editor.Selections.Clear(); UID dockWinID = new UIDClass(); dockWinID.Value = ThisAddIn.IDs.EditForm; IDockableWindow dockWindow = ArcMap.DockableWindowManager.GetDockableWindow(dockWinID); if (dockWindow.IsVisible()) { dockWindow.Show(false); EditForm editForm = AddIn.FromID <EditForm.AddinImpl>(ThisAddIn.IDs.EditForm).UI; editForm.ClearValues(); } } catch (Exception ex) { MessageBox.Show(string.Format("Unfortunately, the application meets an error.\n\nSource: {0}\nSite: {1}\nMessage: {2}", ex.Source, ex.TargetSite, ex.Message), "Error"); } return(base.OnDeactivate()); }
protected override void OnMouseUp(ESRI.ArcGIS.Desktop.AddIns.Tool.MouseEventArgs arg) { base.OnMouseDown(arg); if (Editor.ActiveLayer != null) { try { UID uid = new UIDClass(); uid.Value = ThisAddIn.IDs.EditForm; IDockableWindow dockWin = ArcMap.DockableWindowManager.GetDockableWindow(uid); EditForm editForm = AddIn.FromID <EditForm.AddinImpl>(ThisAddIn.IDs.EditForm).UI; IEnvelope envelop = newEnvelopeFeedback.Stop(); Position tlCorner, brCorner; if (envelop.UpperLeft.IsEmpty) { tlCorner = Editor.ScreenCoor2RasterCoor(arg.X, arg.Y); brCorner = tlCorner; } else { tlCorner = Editor.MapCoor2RasterCoor(envelop.UpperLeft); brCorner = Editor.MapCoor2RasterCoor(envelop.LowerRight); } if (!IsIntersect(tlCorner, brCorner, maxIndex)) { editForm.ClearValues(); return; } tlCorner.Adjust(0, 0, maxIndex.Column, maxIndex.Row); brCorner.Adjust(0, 0, maxIndex.Column, maxIndex.Row); // Show symbols of selected pixels for (int row = tlCorner.Row; row <= brCorner.Row; row++) { for (int col = tlCorner.Column; col <= brCorner.Column; col++) { Pixel pixel = new Pixel(new Position(col, row)); pixel.GraphicElement = Display.DrawBox(pixel.Position, Editor.GetSelectionSymbol(), Editor.ActiveLayer); Editor.Selections.Add(pixel); } } IRasterLayer rasterLayer = (IRasterLayer)activeLayer; double[,] values = Editor.GetValues(tlCorner, brCorner, rasterLayer.Raster); editForm.SetValues(tlCorner, brCorner, values); // If there is only one value, select that. if (values.Length == 1) { editForm.RasterGridView[0, 0].Selected = false; editForm.RasterGridView[1, 0].Selected = true; } if (!dockWin.IsVisible()) { dockWin.Show(true); } } catch (Exception ex) { MessageBox.Show(string.Format("Unfortunately, the application meets an error.\n\nSource: {0}\nSite: {1}\nMessage: {2}", ex.Source, ex.TargetSite, ex.Message), "Error"); } } }