示例#1
0
        private void InitSubEntries()
        {
            subEntries = null; // damit nicht noch die alten verwendet werden
            if (polesProperty != null)
            {
                polesProperty.ModifyWithMouseEvent           -= new CADability.UserInterface.MultiGeoPointProperty.ModifyWithMouseIndexDelegate(OnModifyPolesWithMouse);
                polesProperty.GeoPointSelectionChangedEvent  -= new CADability.UserInterface.GeoPointProperty.SelectionChangedDelegate(OnPointsSelectionChanged);
                polesProperty.PropertyEntryChangedStateEvent -= new PropertyEntryChangedStateDelegate(OnPolesPropertyStateChanged);
            }
            polesProperty = new MultiGeoPointProperty(new PolesIndexedGeoPoint(this), "BSpline.Poles", this.Frame);
            polesProperty.ModifyWithMouseEvent           += new CADability.UserInterface.MultiGeoPointProperty.ModifyWithMouseIndexDelegate(OnModifyPolesWithMouse);
            polesProperty.GeoPointSelectionChangedEvent  += new CADability.UserInterface.GeoPointProperty.SelectionChangedDelegate(OnPointsSelectionChanged);
            polesProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnPolesPropertyStateChanged);

            if (bSpline.ThroughPoints3dExist)
            {
                if (throughPointsProperty != null)
                {       // es nach einem Refresh wird er neu gemacht, der alte muss die Events hergeben
                    throughPointsProperty.ModifyWithMouseEvent           -= new CADability.UserInterface.MultiGeoPointProperty.ModifyWithMouseIndexDelegate(OnModifyThroughPointsWithMouse);
                    throughPointsProperty.GeoPointSelectionChangedEvent  -= new CADability.UserInterface.GeoPointProperty.SelectionChangedDelegate(OnPointsSelectionChanged);
                    throughPointsProperty.PropertyEntryChangedStateEvent -= new PropertyEntryChangedStateDelegate(OnThroughPointsPropertyStateChanged);
                }
                throughPointsProperty = new MultiGeoPointProperty(new ThroughPointsIndexedGeoPoint(this), "BSpline.ThroughPoints", this.Frame);
                throughPointsProperty.ModifyWithMouseEvent           += new CADability.UserInterface.MultiGeoPointProperty.ModifyWithMouseIndexDelegate(OnModifyThroughPointsWithMouse);
                throughPointsProperty.GeoPointSelectionChangedEvent  += new CADability.UserInterface.GeoPointProperty.SelectionChangedDelegate(OnPointsSelectionChanged);
                throughPointsProperty.PropertyEntryChangedStateEvent += new PropertyEntryChangedStateDelegate(OnThroughPointsPropertyStateChanged);
                throughPointsProperty.GetInsertionPointEvent         += new MultiGeoPointProperty.GetInsertionPointDelegate(OnThroughPointsGetInsertionPoint);
            }
            else
            {
                throughPointsProperty = null;
            }

            if (closedProperty != null)
            {
                closedProperty.GetBooleanEvent -= new CADability.UserInterface.BooleanProperty.GetBooleanDelegate(OnGetClosed);
                closedProperty.SetBooleanEvent -= new CADability.UserInterface.BooleanProperty.SetBooleanDelegate(OnSetClosed);
            }
            closedProperty = new BooleanProperty("Constr.BSpline.Mode", "Constr.BSpline.Mode.Values");
            closedProperty.GetBooleanEvent += new CADability.UserInterface.BooleanProperty.GetBooleanDelegate(OnGetClosed);
            closedProperty.SetBooleanEvent += new CADability.UserInterface.BooleanProperty.SetBooleanDelegate(OnSetClosed);
            closedProperty.BooleanValue     = bSpline.IsClosed;
            attributeProperties             = bSpline.GetAttributeProperties(Frame);
        }