Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 /// <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);
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 public SelectActionContextMenu(SelectObjectsAction soa)
 {
     this.soa             = soa;
     currentMenuSelection = new GeoObjectList();
 }