void IEditTask.Activate(IEditor Editor, IEditTask oldTask) { if (Editor == null) { return; } }
void IEditTask.Activate(IEditor Editor, IEditTask oldTask) { if (Editor == null) { return; } //Initialize class member variables. m_editor = Editor; m_editSketch = Editor as IEditSketch; m_editSketch.GeometryType = esriGeometryType.esriGeometryPolyline; m_editLayer = Editor as IEditLayers; m_mxDoc = Editor.Parent.Document as IMxDocument; //Wire editor events. ((IEditEvents_Event)m_editor).OnCurrentLayerChanged += new IEditEvents_OnCurrentLayerChangedEventHandler(OnCurrentLayerChanged); }
private static bool CheckEditTask() { bool result = false; IEditor3 editor = ArcUtils.Editor; if (editor != null) { IEditTask task = editor.CurrentTask; if (task != null) { var uniqueName = task as IEditTaskName; if (uniqueName != null) { string name = uniqueName.UniqueName; result = (name == "GarciaUI_CreateNewFeatureTask") || (name == "GarciaUI_ReshapeFeatureTask"); } } } return(result); }
private static void OnCurrentTaskChanged() { try { IEditor3 editor = ArcUtils.Editor; LogClient.Info("On CurrentTask Changed"); _doSelection = true; if (editor != null) { var sketch = editor as IEditSketch3; var editLayers = editor as IEditLayers; if ((sketch != null) && (editLayers != null)) { IEditTask task = editor.CurrentTask; ILayer currentLayer = editLayers.CurrentLayer; VectorLayer vectorLayer = (EditFeatures.Count != 1) ? ((currentLayer == null) ? null : GetLayer(currentLayer)) : GetLayer(EditFeatures[0]); if ((task != null) && ((vectorLayer != null) && (vectorLayer.IsVisibleInGlobespotter))) { var taskName = task as IEditTaskName; if (taskName != null) { IGeometry geometry = sketch.Geometry; string name = taskName.UniqueName; if (name == "GarciaUI_ModifyFeatureTask") { Measurement measurement = Measurement.Get(geometry, false); if (measurement != null) { int nrPoints; var ptColl = measurement.ToPointCollection(geometry, out nrPoints); if (ptColl != null) { ISketchOperation2 sketchOp = new SketchOperationClass(); sketchOp.Start(editor); for (int j = 0; j < nrPoints; j++) { IPoint point = ptColl.Point[j]; MeasurementPoint mpoint = measurement.IsPointMeasurement ? measurement.GetPoint(point, false) : measurement.GetPoint(point); double m = (mpoint == null) ? double.NaN : mpoint.M; double z = (mpoint == null) ? double.NaN : mpoint.Z; IPoint point2 = new PointClass { X = point.X, Y = point.Y, Z = z, M = m, ZAware = sketch.ZAware }; ptColl.UpdatePoint(j, point2); if (measurement.IsPointMeasurement) { sketch.Geometry = point2; } } if (!measurement.IsPointMeasurement) { sketch.Geometry = ptColl as IGeometry; } geometry = sketch.Geometry; if (geometry != null) { sketchOp.Finish(geometry.Envelope, esriSketchOperationType.esriSketchOperationGeneral, geometry); } } measurement.SetSketch(); measurement.OpenMeasurement(); measurement.DisableMeasurementSeries(); } } else { Measurement measurement = Measurement.Get(geometry, false); if (measurement != null) { measurement.EnableMeasurementSeries(); } OnSelectionChanged(); } } } } } } catch (Exception ex) { LogClient.Error("VectorLayer.OnCurrentTaskChanged", ex.Message, ex); Trace.WriteLine(ex.Message, "VectorLayer.OnCurrentTaskChanged"); } }