public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(System.String) && value is SingleEO) { SingleEO io = (SingleEO)value; return(io.Parent.CurrentType); } if (destinationType == typeof(System.String) && value == null) { return("N/A"); } return(base.ConvertTo(context, culture, value, destinationType)); }
public static SingleEO Load(XPathNavigator navigator, GEMSSingle parent) { SingleEO singleEO = null; switch (parent.CreateOperation.Name) { case GeometryOperation.GeometryOperationType.CreateLine: //Voltage Excitation or Output if (navigator.MoveToChild("VoltageExcitation", string.Empty)) { singleEO = new VoltageExcitation(navigator, parent); } else if (navigator.MoveToChild("VoltageOutput", string.Empty)) { singleEO = new VoltageOutput(navigator, parent); } break; case GeometryOperation.GeometryOperationType.CreatePoint: //FieldPointOutPut if (navigator.MoveToChild("FieldOnPointOutput", string.Empty)) { //((Point)operations[0]).BFieldOutput = true; singleEO = new PointOutput(navigator, parent); } break; case GeometryOperation.GeometryOperationType.CreateRectangle: //Current Excitation or Output case GeometryOperation.GeometryOperationType.CreateRound: //Current Excitation or Output if (navigator.MoveToChild("CurrentExcitation", string.Empty)) { singleEO = new CurrentExcitation(navigator, parent); } else if (navigator.MoveToChild("CurrentOutput", string.Empty)) { singleEO = new CurrentOutput(navigator, parent); } break; default: break; } return(singleEO); }
public GEMSSingle(XPathNavigator navigator, GEMSProject parent) { this.parent = parent; //Basic information id = int.Parse(navigator.GetAttribute("id", string.Empty)); name = navigator.GetAttribute("name", string.Empty); float transparency = float.Parse(navigator.GetAttribute("transparent", string.Empty)); pec = navigator.GetAttribute("pec", string.Empty) == "0" ? false:true; //Material int materialId = int.Parse(navigator.GetAttribute("material", string.Empty)); //Find the material in the material list of the project material = parent.SearchMaterial(materialId); if (material != null) { material.UsedSignalIds.Add(this.id); } //Color of the geometry belongs to this single navigator.MoveToChild("Color", string.Empty); int blue = int.Parse(navigator.GetAttribute("blue", string.Empty)); int red = int.Parse(navigator.GetAttribute("red", string.Empty)); int green = int.Parse(navigator.GetAttribute("green", string.Empty)); singleColor = Color.FromArgb(GetModelMaterialTransparency(transparency), red, green, blue); navigator.MoveToParent( ); //Operations LoadOperations(navigator); //Information of excitation or output currentEO = SingleEO.Load(navigator, this); UpdatePrimaryModel( ); UpdateSingleEOSymbolModel( ); }
public override object EditValue(ITypeDescriptorContext context, System.IServiceProvider provider, object value) { if (context == null || provider == null || context.Instance == null) { return(base.EditValue(provider, value)); } //Cannot to edit if (value == null) { return(value); } //Get the io object SingleEO io = value as SingleEO; if (io is PointOutput) //There's no interface for point output { FieldOutputForm form = new FieldOutputForm(io as PointOutput); if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { io.parent.SingleDataChangedAlarm(GEMSSingle.SingleDataChangedEventArgs.DataChangeType.EOChanged); } form.Dispose(); } else { ExcitationOutputForm form = new ExcitationOutputForm(io); if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK) { io.parent.SingleDataChangedAlarm(GEMSSingle.SingleDataChangedEventArgs.DataChangeType.EOChanged); } form.Dispose(); } return(io); }