static public EncoderConfigurationWindow View(bool gravitatory, EncoderConfiguration ec, bool definedInConfig) { /* * if we are on gravitatory but ec is inertial, then put definedInConfig as false * and create a new ec that suits */ if (ec.has_inertia == gravitatory) { definedInConfig = false; if (gravitatory) { ec = new EncoderConfiguration(); //LINEAR, not inertial } else { ec = new EncoderConfiguration(Constants.EncoderConfigurationNames.ROTARYAXISINERTIAL); ec.SetInertialDefaultOptions(); } } if (EncoderConfigurationWindowBox == null) { EncoderConfigurationWindowBox = new EncoderConfigurationWindow(definedInConfig); } //activate default radiobutton if (ec.type == Constants.EncoderType.ROTARYFRICTION) { EncoderConfigurationWindowBox.radio_rotary_friction.Active = true; } else if (ec.type == Constants.EncoderType.ROTARYAXIS) { EncoderConfigurationWindowBox.radio_rotary_axis.Active = true; } else //linear { EncoderConfigurationWindowBox.radio_linear.Active = true; } if (!ec.has_inertia) { EncoderConfigurationWindowBox.radio_gravity.Active = true; } else { EncoderConfigurationWindowBox.radio_inertia.Active = true; } EncoderConfigurationWindowBox.check_rotary_friction_inertia_on_axis.Active = ec.rotaryFrictionOnAxis; EncoderConfigurationWindowBox.initializeList(ec.type, ec.has_inertia, ec.rotaryFrictionOnAxis, ec.position); EncoderConfigurationWindowBox.create_list_d_spinbutton(); EncoderConfigurationWindowBox.putValuesStoredPreviously( ec.d, ec.list_d, ec.D, ec.anglePush, ec.angleWeight, ec.inertiaMachine, ec.extraWeightGrams, ec.extraWeightLength, ec.has_gearedDown, ec.GearedUpDisplay()); //id definedInConfig then only few things can change if (definedInConfig) { EncoderConfigurationWindowBox.hbox_encoder_types.Visible = false; EncoderConfigurationWindowBox.check_rotary_friction_inertia_on_axis.Visible = false; EncoderConfigurationWindowBox.alignment_options.Visible = false; EncoderConfigurationWindowBox.vbox_inertia_calcule.Visible = false; } EncoderConfigurationWindowBox.encoder_configuration.Show(); return(EncoderConfigurationWindowBox); }