Пример #1
0
 private void ViewModeComboBox_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (!FlagManager.IsSet("ViewModeComboBox") && ProjectManager.IsProjectOpen)
     {
         FilterNavigation();
     }
 }
Пример #2
0
        private void BuildConfigListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(FillSettings)))
            {
                return;
            }

            if (FlagManager.IsSet(nameof(SetSelectedBuildConfig)))
            {
                return;
            }

            if (IsEditingConfig)
            {
                SetSelectedBuildConfig(SelectedBuildConfig, false);
                return;
            }

            if (BuildConfigListView.SelectedItems.Count == 1 &&
                BuildConfigListView.SelectedItems[0].Tag is BuildConfiguration config)
            {
                SetSelectedBuildConfig(config, true);
            }
            //else if (SelectedBuildConfig != null)
            //{
            //    SetSelectedBuildConfig(SelectedBuildConfig, false);
            //}
        }
Пример #3
0
        private void FlexTextBox_Validating(object sender, CancelEventArgs e)
        {
            if (FlagManager.IsSet(nameof(FillFlexValues)))
            {
                return;
            }

            if (!string.IsNullOrEmpty(FlexTextBox.Text))
            {
                var matValues = FlexTextBox.Text.Split(';', ',');

                if (matValues.Length != 5)
                {
                    MessageBox.Show("Invalid number of values");
                    e.Cancel = true;
                    return;
                }
                var invalidValues = new List <string>();
                for (int i = 0; i < matValues.Length; i++)
                {
                    if (!Utilities.NumberHelper.SmartTryParse(matValues[i].Trim(), out _))
                    {
                        invalidValues.Add(matValues[i]);
                    }
                }
                if (invalidValues.Any())
                {
                    MessageBox.Show($"Invalid values: {string.Join(", ", invalidValues)}");
                    e.Cancel = true;
                    return;
                }
            }
        }
Пример #4
0
 private void ProjectTreeView_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (FlagManager.IsSet("PreventSelection") &&
         !FlagManager.IsSet("ItemSelectionChanged"))
     {
         using (FlagManager.UseFlag("ItemSelectionChanged"))
             ProjectTreeView.SelectObjects(SelectedItemCache);
     }
 }
Пример #5
0
        private void BuildCfgProperty_ValueChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(FillBuildConfigDetails)))
            {
                return;
            }

            BeginEditBuildConfig();
        }
Пример #6
0
 private void Panels_CollapsedChanged(object sender, EventArgs e)
 {
     if (FlagManager.IsSet(nameof(ForceAdjustFlowLayout)) ||
         FlagManager.IsSet(nameof(ApplyLayoutArgs)))
     {
         return;
     }
     AdjustFlowLayout();
 }
Пример #7
0
        private void ElementsComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(UpdateElementList)) ||
                FlagManager.IsSet(nameof(SetCurrentObject)))
            {
                return;
            }

            SetCurrentObject(ElementsComboBox.SelectedItem as PartConnection, true);
        }
        private void Edit_GenerateOutlines_CheckStateChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet("UpdateMenuItemStates"))
            {
                return;
            }

            SettingsManager.Current.BuildSettings.GenerateOutlines = Edit_GenerateOutlines.Checked;
            SettingsManager.SaveSettings();
        }
Пример #9
0
        private void SpringEditor_ValueChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(SelectedElement_PropertyChanged)) ||
                FlagManager.IsSet(nameof(SetCurrentObject)))
            {
                return;
            }

            if (SpringCheckBox.Checked && SelectedElement?.Connector is SliderConnector slider)
            {
                slider.Spring = SpringEditor.Value;
            }
        }
Пример #10
0
        private void CollisionSizeEditor_ValueChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet("FillSelectionDetails") ||
                FlagManager.IsSet("UpdatePropertyValue"))
            {
                return;
            }

            if (SelectedElement is PartBoxCollision boxCollision)
            {
                boxCollision.Size = CollisionSizeEditor.Value / 2d;
            }
        }
Пример #11
0
        private void CollisionRadiusBox_ValueChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet("FillSelectionDetails") ||
                FlagManager.IsSet("UpdatePropertyValue"))
            {
                return;
            }

            if (SelectedElement is PartSphereCollision sphereCollision)
            {
                sphereCollision.Radius = CollisionRadiusBox.Value;
            }
        }
Пример #12
0
        private void LddPathTextBoxes_ValueChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(FillLddSettings)))
            {
                return;
            }

            var tmpEnv = new LDD.LDDEnvironment(PrgmFilePathTextBox.Value, AppDataPathTextBox.Value);

            tmpEnv.CheckLifStatus();
            UpdateLifsStatus(tmpEnv);
            HasSettingsChanged = !SettingsEnvironment.IsEqual(tmpEnv);
        }
Пример #13
0
        private void ProjectTreeView_SelectionChanged(object sender, EventArgs e)
        {
            if (!(FlagManager.IsSet("BuildingNavTree") ||
                  FlagManager.IsSet("ManualSelect") ||
                  FlagManager.IsSet("DragDropping") ||
                  FlagManager.IsSet("WaitForManualSelect") ||
                  FlagManager.IsSet("PreventSelection")))
            {
                using (FlagManager.UseFlag("SelectElements"))
                    ProjectManager.SelectElements(GetSelectedElements());
            }

            FlagManager.Set("WaitForManualSelect", false);
            FlagManager.Set("PreventSelection", false);
        }
Пример #14
0
        private void SpringCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            SpringEditor.Enabled = SpringCheckBox.Checked;

            if (FlagManager.IsSet(nameof(SelectedElement_PropertyChanged)) ||
                FlagManager.IsSet(nameof(SetCurrentObject)))
            {
                return;
            }

            if (SelectedElement?.Connector is SliderConnector slider)
            {
                slider.Spring = SpringCheckBox.Checked ? (Vector3d?)SpringEditor.Value : null;
            }
        }
Пример #15
0
        protected override void OnElementSelectionChanged()
        {
            base.OnElementSelectionChanged();

            if (FlagManager.IsSet("SelectElements"))
            {
                return;
            }

            if (InvokeRequired)
            {
                BeginInvoke(new MethodInvoker(SyncProjectSelection));
            }
            else
            {
                SyncProjectSelection();
            }
        }
Пример #16
0
        private void CategoryListView_SelectionChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(SelectTabInList)))
            {
                return;
            }

            if (CategoryListView.SelectedObject is SettingsTabNode tabNode)
            {
                if (!ShowSettingTab(tabNode.Tab) && CurrentTab != null)
                {
                    SelectTabInList(CurrentTab);
                }
            }
            else if (CurrentTab != null)
            {
                SelectTabInList(CurrentTab);
            }
        }
Пример #17
0
        private void ConnectionSubTypeCombo_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(SetCurrentObject)))
            {
                return;
            }

            if (SelectedElement != null &&
                ConnectionSubTypeCombo.SelectedItem is ConnectorInfo connInfo)
            {
                if (SelectedElement.SubType != connInfo.SubType)
                {
                    SelectedElement.SubType = connInfo.SubType;
                }
                if (SelectedElement.ConnectorType == ConnectorType.Ball)
                {
                    UpdateFlexEditorVisibility();
                }
            }
        }
        private void BuildConfigComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (FlagManager.IsSet("UpdateBuildConfig"))
            {
                return;
            }

            if (BuildConfigComboBox.SelectedItem is BuildConfiguration buildConfig)
            {
                if (buildConfig.InternalFlag == 3)
                {
                    using (FlagManager.UseFlag("UpdateBuildConfig"))
                        BuildConfigComboBox.SelectedIndex = BuildConfigList.IndexOf(SelectedBuildConfig);
                    ShowSettingsWindow(AppSettingsWindow.SettingTab.EditorSettings);
                }
                else
                {
                    SelectedBuildConfig = buildConfig;
                }
            }
        }
Пример #19
0
        private void FlexTextBox_Validated(object sender, EventArgs e)
        {
            if (FlagManager.IsSet(nameof(FillFlexValues)))
            {
                return;
            }

            if (!string.IsNullOrEmpty(FlexTextBox.Text))
            {
                var matValues = FlexTextBox.Text.Split(';', ',');
                var values    = new double[5];
                for (int i = 0; i < matValues.Length; i++)
                {
                    if (Utilities.NumberHelper.SmartTryParse(matValues[i].Trim(), out double fV))
                    {
                        values[i] = fV;
                    }
                }

                (SelectedElement.Connector as BallConnector).SetFlexValues(values);
            }
        }
Пример #20
0
        private void FillSelectedConnector(bool fromCombo)
        {
            if (FlagManager.IsSet("UpdateConnectorList"))
            {
                return;
            }

            if (ConnectorComboBox.SelectedItem is PartConnection connection)
            {
                studConnectionEditor1.StudConnector = connection.GetConnector <Custom2DFieldConnector>();
                studConnectionEditor1.Enabled       = true;

                if (SyncSelectionCheckBox.Checked && fromCombo && !FlagManager.IsSet("SyncToCurrentSelection"))
                {
                    ProjectManager.SelectElement(connection);
                }
            }
            else
            {
                studConnectionEditor1.StudConnector = null;
                studConnectionEditor1.Enabled       = false;
            }
        }
Пример #21
0
        private void SetCurrentObject(PartConnection connection, bool fromComboBox)
        {
            foreach (var ctrl in GetAllEditControl())
            {
                ctrl.DataBindings.Clear();
            }

            using (FlagManager.UseFlag(nameof(SetCurrentObject)))
            {
                if (SelectedElement != null)
                {
                    SelectedElement.PropertyChanged -= SelectedElement_PropertyChanged;
                    SelectedElement = null;
                }

                SelectedElement = connection;

                if (SelectedElement != null)
                {
                    ElementNameTextBox.Enabled     = true;
                    ConnectionSubTypeCombo.Enabled = true;
                    TransformEdit.Enabled          = true;

                    TypeValueLabel.Text = connection.ConnectorType.ToString();
                    ElementNameTextBox.DataBindings.Add(new Binding(
                                                            "Text",
                                                            connection,
                                                            nameof(connection.Name), true,
                                                            DataSourceUpdateMode.OnValidation));

                    EditControlHelpers.ForEach(x => x.UpdateVisibility(SelectedElement.ConnectorType));

                    TransformEdit.BindPhysicalElement(connection);

                    switch (SelectedElement.ConnectorType)
                    {
                    case ConnectorType.Hinge:
                    {
                        OrientedCheckBox.DataBindings.Add(new Binding(
                                                              "Checked",
                                                              connection.Connector,
                                                              nameof(HingeConnector.Oriented), true,
                                                              DataSourceUpdateMode.OnPropertyChanged));
                        LimitMinBox.DataBindings.Add(new Binding(
                                                         "Value",
                                                         connection.Connector,
                                                         nameof(HingeConnector.LimitMin), true,
                                                         DataSourceUpdateMode.OnPropertyChanged));
                        LimitMaxBox.DataBindings.Add(new Binding(
                                                         "Value",
                                                         connection.Connector,
                                                         nameof(HingeConnector.LimitMax), true,
                                                         DataSourceUpdateMode.OnPropertyChanged));
                        FlipLimitMinBox.DataBindings.Add(new Binding(
                                                             "Value",
                                                             connection.Connector,
                                                             nameof(HingeConnector.FlipLimitMin), true,
                                                             DataSourceUpdateMode.OnPropertyChanged));
                        FlipLimitMaxBox.DataBindings.Add(new Binding(
                                                             "Value",
                                                             connection.Connector,
                                                             nameof(HingeConnector.FlipLimitMax), true,
                                                             DataSourceUpdateMode.OnPropertyChanged));
                    }
                    break;

                    case ConnectorType.Axel:
                    {
                        LengthBox.DataBindings.Add(new Binding(
                                                       "Value",
                                                       connection.Connector,
                                                       nameof(AxelConnector.Length), true,
                                                       DataSourceUpdateMode.OnPropertyChanged));

                        StartCappedCheckBox.DataBindings.Add(new Binding(
                                                                 "Checked",
                                                                 connection.Connector,
                                                                 nameof(AxelConnector.StartCapped), true,
                                                                 DataSourceUpdateMode.OnPropertyChanged));
                        EndCappedCheckBox.DataBindings.Add(new Binding(
                                                               "Checked",
                                                               connection.Connector,
                                                               nameof(AxelConnector.EndCapped), true,
                                                               DataSourceUpdateMode.OnPropertyChanged));

                        GrabbingCheckBox.DataBindings.Add(new Binding(
                                                              "Checked",
                                                              connection.Connector,
                                                              nameof(AxelConnector.Grabbing), true,
                                                              DataSourceUpdateMode.OnPropertyChanged));
                        GrabbingRequiredCheckBox.DataBindings.Add(new Binding(
                                                                      "Checked",
                                                                      connection.Connector,
                                                                      nameof(AxelConnector.IsGrabbingRequired), true,
                                                                      DataSourceUpdateMode.OnPropertyChanged));
                    }
                    break;

                    case ConnectorType.Gear:
                    {
                        ToothNumBox.DataBindings.Add(new Binding(
                                                         "Value",
                                                         connection.Connector,
                                                         nameof(GearConnector.ToothCount), true,
                                                         DataSourceUpdateMode.OnPropertyChanged));
                        RadiusNumBox.DataBindings.Add(new Binding(
                                                          "Value",
                                                          connection.Connector,
                                                          nameof(GearConnector.Radius), true,
                                                          DataSourceUpdateMode.OnPropertyChanged));
                    }
                    break;

                    case ConnectorType.Slider:
                    {
                        var sliderConn = connection.Connector as SliderConnector;
                        LengthBox.DataBindings.Add(new Binding(
                                                       "Value",
                                                       connection.Connector,
                                                       nameof(SliderConnector.Length), true,
                                                       DataSourceUpdateMode.OnPropertyChanged));

                        CylindricalCheckBox.DataBindings.Add(new Binding(
                                                                 "Checked",
                                                                 connection.Connector,
                                                                 nameof(SliderConnector.Cylindrical), true,
                                                                 DataSourceUpdateMode.OnPropertyChanged));

                        StartCappedCheckBox.DataBindings.Add(new Binding(
                                                                 "Checked",
                                                                 connection.Connector,
                                                                 nameof(SliderConnector.StartCapped), true,
                                                                 DataSourceUpdateMode.OnPropertyChanged));
                        EndCappedCheckBox.DataBindings.Add(new Binding(
                                                               "Checked",
                                                               connection.Connector,
                                                               nameof(SliderConnector.EndCapped), true,
                                                               DataSourceUpdateMode.OnPropertyChanged));
                        UpdateSliderSpringValue();
                    }
                    break;

                    case ConnectorType.Rail:
                    {
                        LengthBox.DataBindings.Add(new Binding(
                                                       "Value",
                                                       connection.Connector,
                                                       nameof(RailConnector.Length), true,
                                                       DataSourceUpdateMode.OnPropertyChanged));
                    }
                    break;

                    case ConnectorType.Fixed:
                    {
                        AxesNumberBox.DataBindings.Add(new Binding(
                                                           "Value",
                                                           connection.Connector,
                                                           nameof(FixedConnector.Axes), true,
                                                           DataSourceUpdateMode.OnPropertyChanged));
                    }
                    break;

                    case ConnectorType.Ball:
                    {
                        UpdateFlexEditorVisibility();

                        FillFlexValues();
                    }
                    break;
                    }

                    FillSubTypeComboBox(SelectedElement.ConnectorType);
                    SetSubTypeComboValue(SelectedElement.SubType);

                    SelectedElement.PropertyChanged += SelectedElement_PropertyChanged;

                    if (SyncSelectionCheckBox.Checked && fromComboBox &&
                        !FlagManager.IsSet(nameof(SyncToCurrentSelection)))
                    {
                        ProjectManager.SelectElement(connection);
                    }
                }
                else
                {
                    TypeValueLabel.Text = string.Empty;
                    //FlexTextBox.Text = string.Empty;
                    EditControlHelpers.ForEach(x => x.SetVisibility(false));
                    ElementNameTextBox.Enabled     = false;
                    ConnectionSubTypeCombo.Enabled = false;
                    TransformEdit.Enabled          = false;
                    TransformEdit.BindPhysicalElement(null);

                    //HingeLayoutPanel.Visible = false;
                }

                if (!fromComboBox && ElementsComboBox.SelectedItem != SelectedElement)
                {
                    ElementsComboBox.SelectedItem = SelectedElement;
                }
            }
        }