public ShowPropertyDimension(Dimension dimension, IFrame frame) : base(frame) { dimension.SortPoints(); this.dimension = dimension; switch (dimension.DimType) { case Dimension.EDimType.DimPoints: base.resourceId = "Dimension.DimPoints"; break; case Dimension.EDimType.DimCoord: base.resourceId = "Dimension.DimCoord"; break; case Dimension.EDimType.DimAngle: base.resourceId = "Dimension.DimAngle"; break; case Dimension.EDimType.DimRadius: base.resourceId = "Dimension.DimRadius"; break; case Dimension.EDimType.DimDiameter: base.resourceId = "Dimension.DimDiameter"; break; case Dimension.EDimType.DimLocation: base.resourceId = "Dimension.DimLocation"; break; } Init(); SelectObjectsAction selAct = Frame.ActiveAction as SelectObjectsAction; if (selAct != null) { selAct.ClickOnSelectedObjectEvent += new CADability.Actions.SelectObjectsAction.ClickOnSelectedObjectDelegate(OnClickOnSelectedObject); } ignoreChange = false; }
virtual public bool OnCommand(string MenuId) { switch (MenuId) { case "MenuId.Explode": if (Frame.ActiveAction is SelectObjectsAction) { using (Frame.Project.Undo.UndoFrame) { IGeoObjectOwner addTo = dimension.Owner; if (addTo == null) { addTo = Frame.ActiveView.Model; } GeoObjectList toSelect = dimension.Decompose(); addTo.Remove(dimension); for (int i = 0; i < toSelect.Count; ++i) { addTo.Add(toSelect[i]); } SelectObjectsAction soa = Frame.ActiveAction as SelectObjectsAction; soa.SetSelectedObjects(toSelect); // alle Teilobjekte markieren } } return(true); } return(false); }
/// <summary> /// Implements <see cref="CADability.UserInterface.ICommandHandler.OnCommand (string)"/> /// </summary> /// <param name="MenuId"></param> /// <returns></returns> virtual public bool OnCommand(string MenuId) { switch (MenuId) { case "MenuId.Explode": if (frame.ActiveAction is SelectObjectsAction) { using (frame.Project.Undo.UndoFrame) { IGeoObjectOwner addTo = blockRef.Owner; if (addTo == null) { addTo = frame.ActiveView.Model; } addTo.Remove(blockRef); //IGeoObject go = blockRef.ReferencedBlock.Clone(); //go.PropagateAttributes(blockRef.Layer, blockRef.ColorDef); GeoObjectList l = blockRef.Decompose(); addTo.Add(l[0]); SelectObjectsAction soa = frame.ActiveAction as SelectObjectsAction; soa.SetSelectedObjects(l); // alle Teilobjekte markieren } } return(true); } return(false); }
virtual public bool OnCommand(string MenuId) { switch (MenuId) { case "MenuId.Reverse": polyline.Reverse(); return(true); case "MenuId.CurveSplit": Frame.SetAction(new ConstrSplitCurve(polyline)); return(true); case "MenuId.Explode": if (Frame.ActiveAction is SelectObjectsAction) { using (Frame.Project.Undo.UndoFrame) { IGeoObjectOwner addTo = polyline.Owner; if (addTo == null) { addTo = Frame.ActiveView.Model; } GeoObjectList toSelect = polyline.Decompose(); addTo.Remove(polyline); for (int i = 0; i < toSelect.Count; ++i) { addTo.Add(toSelect[i]); } SelectObjectsAction soa = Frame.ActiveAction as SelectObjectsAction; soa.SetSelectedObjects(toSelect); // alle Teilobjekte markieren } } return(true); case "MenuId.Aequidist": Frame.SetAction(new ConstructAequidist(polyline)); return(true); case "MenuId.Path.Vertex.StartWithMe": { if (polyline.IsClosed) { GeoPointProperty gpp = Frame.ContextMenuSource as GeoPointProperty; if (gpp != null) { if (gpp.UserData.ContainsData("Index")) { int index = (int)gpp.UserData.GetData("Index"); polyline.CyclicalPermutation(index); } } } } return(true); } return(false); }
virtual public bool OnCommand(string MenuId) { switch (MenuId) { case "MenuId.Explode": if (Frame.ActiveAction is SelectObjectsAction) { SelectObjectsAction soa = Frame.ActiveAction as SelectObjectsAction; soa.SetSelectedObjects(new GeoObjectList()); //Application.DoEvents(); using (Frame.Project.Undo.UndoFrame) { IGeoObjectOwner addTo = block.Owner; if (addTo == null) { addTo = Frame.ActiveView.Model; } addTo.Remove(block); GeoObjectList toSelect = block.Decompose(); for (int i = 0; i < toSelect.Count; i++) { addTo.Add(toSelect[i]); } soa.SetSelectedObjects(toSelect); // alle Teilobjekte markieren } } return(true); case "MenuId.SelectedObject.ToBackground": if (ContextMenuSource != null) { block.MoveToBack(ContextMenuSource); subEntries = null; if (propertyPage != null) { propertyPage.Refresh(this); } } return(true); case "MenuId.SelectedObject.ToForeground": if (ContextMenuSource != null) { block.MoveToFront(ContextMenuSource); subEntries = null; if (propertyPage != null) { propertyPage.Refresh(this); } } return(true); } return(false); }
public void RemoveGeoPoint(int Index) { ignoreChange = true; dimension.RemovePoint(Index); ignoreChange = false; subProperties = null; propertyPage.Refresh(this); propertyPage.OpenSubEntries(points, true); SelectObjectsAction selAct = Frame.ActiveAction as SelectObjectsAction; if (selAct != null) { selAct.RemoveSelectedObject(dimension); selAct.AddSelectedObject(dimension); } }
virtual public bool OnCommand(string MenuId) { switch (MenuId) { case "MenuId.Reverse": (path as ICurve).Reverse(); if (propertyPage != null) { propertyPage.Refresh(this); } return(true); case "MenuId.CurveSplit": Frame.SetAction(new ConstrSplitCurve(path)); return(true); case "MenuId.Approximate": if (Frame.ActiveAction is SelectObjectsAction) { Curves.Approximate(Frame, path); } return(true); case "MenuId.Explode": if (Frame.ActiveAction is SelectObjectsAction) { using (Frame.Project.Undo.UndoFrame) { IGeoObjectOwner addTo = path.Owner; if (addTo == null) { addTo = Frame.ActiveView.Model; } ICurve[] pathCurves = path.Curves; GeoObjectList toSelect = path.Decompose(); addTo.Remove(path); for (int i = toSelect.Count - 1; i >= 0; --i) { if (!toSelect[i].HasValidData()) { toSelect.Remove(i); } } for (int i = 0; i < toSelect.Count; i++) { addTo.Add(toSelect[i]); } SelectObjectsAction soa = Frame.ActiveAction as SelectObjectsAction; soa.SetSelectedObjects(toSelect); // alle Teilobjekte markieren } } return(true); case "MenuId.Aequidist": Frame.SetAction(new ConstructAequidist(path)); return(true); case "MenuId.Reduce": if (path.GetPlanarState() == PlanarState.Planar) { Plane pln = path.GetPlane(); Path2D p2d = path.GetProjectedCurve(pln) as Path2D; if (p2d != null) { p2d.ForceConnected(); Reduce2D r2d = new Reduce2D(); r2d.Precision = Settings.GlobalSettings.GetDoubleValue("Approximate.Precision", 0.01); r2d.Add(p2d.SubCurves); r2d.OutputMode = Reduce2D.Mode.Paths; ICurve2D[] red = r2d.Reduced; if (red.Length == 1) { using (Frame.Project.Undo.UndoFrame) { IGeoObjectOwner addTo = path.Owner; if (addTo == null) { addTo = Frame.ActiveView.Model; } addTo.Remove(path); Path redpath = red[0].MakeGeoObject(pln) as Path; if (redpath != null) { SelectObjectsAction soa = Frame.ActiveAction as SelectObjectsAction; soa.SetSelectedObjects(new GeoObjectList(redpath)); } } } } } return(true); } return(false); }
public SelectActionContextMenu(SelectObjectsAction soa) { this.soa = soa; currentMenuSelection = new GeoObjectList(); }