예제 #1
0
            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));
            }
예제 #2
0
        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);
        }
예제 #3
0
        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( );
        }
예제 #4
0
            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);
            }