Ejemplo n.º 1
0
        /// <summary>
        /// Клонирует текущий объект
        /// </summary>
        /// <returns>Клон объекта</returns>
        public object Clone( )
        {
            TableSequence obj = New( );

            obj.Name         = Name;
            obj.TypeTable    = TypeTable;
            obj.Text         = Text;
            obj.Data         = (DataTable)Data.Clone( );
            obj.DelayAuto    = (DelayAutoTable)DelayAuto.Clone( );
            obj.GenerateAuto = (GenerateAutoTable)GenerateAuto.Clone( );
            return(obj);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Статический метод для создания экземпляров класса на основе данных импорта
        /// </summary>
        /// <param name="table">Объект содержащий данные импорта</param>
        /// <returns>Объект таблицы</returns>
        public static TableSequence CreateInstance(SequenceTable table)
        {
            TableSequence objectTable;

            switch (table.typeOfTable)
            {
            case 0x00000001:
                objectTable = new DelayTableSequence( );
                break;

            case 0x0000000D:
                objectTable = new LoopTableSequence( );
                break;

            case 0x00004154:
            case 0x00004132:
                objectTable = new AttenuationTableSequence( );
                break;

            case 0x00004143:
                objectTable = new AcquisitionTableSequence( );
                break;

            case 0x00004741:
                objectTable = new RotationAngleTableSequence( );
                break;

            case 0x00004752:
            case 0x00004732:
                objectTable = new GradientAmplitudeTableSequence( );
                break;

            case 0x00004F31:
                objectTable = new FrequencyTableSequence( );
                break;

            case 0x0000524D:
            case 0x00005232:
                objectTable = new ModulationTableSequence( );
                break;

            case 0x00005048:
            case 0x00005032:
            case 0x00005053:
                objectTable = new PhaseTableSequence( );
                break;

            case 0x00005348:
                objectTable = new GradientWaveformTableSequence( );
                break;

            default:
                objectTable = new TableSequence( );
                break;
            }

            objectTable.Name           = table.name;
            objectTable.TypeTable      = objectTable.GetTypeTable(table.dimension);
            objectTable.Data           = new DataTable( );
            objectTable.Data.Auto      = table.isAuto;
            objectTable.Data.Steps     = table.stepsPer360Cycle.ToString();
            objectTable.Data.TimePoint = table.timePoint;
            objectTable.Text           = table.entry;
            if (objectTable._delayAuto != null)
            {
                objectTable._delayAuto.UseDwellTime = table.useIncrementList;
                objectTable._delayAuto.Increment    = table.incrementValue;
                objectTable._delayAuto.Every        = table.incrementOperation == "+ Add" ? 0 : 1;
                objectTable._delayAuto.Add          = table.incrementOperation == "Every pass" ? 0 : 1;
                objectTable._delayAuto.Table        = objectTable;
            }
            if (objectTable._generateAuto != null)
            {
                objectTable._generateAuto.Start     = table.start;
                objectTable._generateAuto.Increment = table.increment;
                objectTable._generateAuto.Number    = table.number;
                objectTable._generateAuto.Table     = objectTable;
            }
            return(objectTable);
        }