Пример #1
0
        /// <summary>
        /// Face 의 형상 정보가 없는 경우 호출되는 생성자로
        /// 툴바의 파트 생성 버튼을 사용할 때 호출되는 생성자이다.
        /// </summary>
        public PopupShape(EMFaceType drawType, EMKind emKind)
        {
            InitializeComponent();

            m_strPartName = string.Empty;
            m_partType    = emKind;

            m_bCreatePopupWindow = true;

            textBoxBaseX.Text = "0.0";
            textBoxBaseY.Text = "0.0";

            switch (m_partType)
            {
            case EMKind.COIL:
                labelPartName.Text = "Coil Name :";
                this.Text          = "Add Coil";
                break;

            case EMKind.MAGNET:
                labelPartName.Text = "Magnet Name :";
                this.Text          = "Add Magnet";
                break;

            case EMKind.STEEL:
                labelPartName.Text = "Steel Name :";
                this.Text          = "Add Steel";
                break;

            default:
                CNotice.printLogID("TPTI");
                return;
            }

            // 콤보박스 데이터는 파라메터로 넘어오는 대로 강제로 지정한다.
            comboBoxFaceType.SelectedItem = drawType.ToString();
            comboBoxNodeType.SelectedItem = m_partType.ToString();

            /// 코일의 경우는 코일계산 때문에 Rectangle 로 고정을 해야 한다.
            if (emKind == EMKind.COIL)
            {
                comboBoxFaceType.Enabled = false;
            }

            comboBoxNodeType.Enabled = false;
        }
Пример #2
0
        /// <summary>
        /// Face 의 형상 정보가 있는 경우 호출되는 생성자로
        /// TreeView 에서 파트를 더블클릭할때 호출되는 생성자이다.
        /// </summary>
        public PopupShape(string partName, CFace face, EMKind emKind)
        {
            InitializeComponent();

            m_strPartName = partName;
            m_partType    = emKind;

            m_bCreatePopupWindow = false;

            try
            {
                switch (m_partType)
                {
                case EMKind.COIL:
                    labelPartName.Text = "Coil Name :";
                    this.Text          = "Change Coil";
                    break;

                case EMKind.MAGNET:
                    labelPartName.Text = "Magnet Name :";
                    this.Text          = "Change Magnet";
                    break;

                case EMKind.STEEL:
                    labelPartName.Text = "Steel Name :";
                    this.Text          = "Change Steel";
                    break;

                case EMKind.NON_KIND:
                    labelPartName.Text = "Part Name";
                    this.Text          = "Change Part";
                    break;

                default:
                    CNotice.printLogID("TPTI");
                    return;
                }

                if (face == null)
                {
                    CNotice.printLogID("CTPS1");
                    return;
                }

                textBoxBaseX.Text = face.BasePoint.X.ToString();
                textBoxBaseY.Text = face.BasePoint.Y.ToString();

                if (face.getPointCount() < MIN_POLYGON_CONTROL_COUNT)
                {
                    CNotice.printLogID("CTPS");
                    return;
                }

                /// 파트이름을 표시만하고 수정을 하지 못하게 한다.
                textBoxPartName.Text = partName;

                if (face.FaceType == EMFaceType.RECTANGLE)
                {
                    // 설정과 동시에 이벤트가 호출되고
                    // 이벤트함수에서 FaceType 가 지정되면서 Popup 창의 형태와 UserControl 이 초기화 된다.
                    comboBoxFaceType.SelectedItem = EMFaceType.RECTANGLE.ToString();

                    this.ListPointUI[0].StrCoordX = face.RelativePointList[0].X.ToString();
                    this.ListPointUI[0].StrCoordZ = face.RelativePointList[0].Y.ToString();

                    this.ListPointUI[1].StrCoordX = face.RelativePointList[2].X.ToString();
                    this.ListPointUI[1].StrCoordZ = face.RelativePointList[2].Y.ToString();
                }
                else if (face.FaceType == EMFaceType.POLYGON)
                {
                    // 설정과 동시에 이벤트가 호출되고
                    // 이벤트함수에서 FaceType 가 지정되면서 Popup 창의 형태와 UserControl 이 초기화 된다.
                    comboBoxFaceType.SelectedItem = EMFaceType.POLYGON.ToString();

                    for (int i = 0; i < face.getPointCount(); i++)
                    {
                        // 기본 생성 Control 수 보다 작을 때는 있는 Control 에 데이터를 담고
                        // 클 때는 Control 를 생성하면서 데이터를 담은다.
                        if (i >= MIN_POLYGON_CONTROL_COUNT)
                        {
                            this.addPointControl(new CPointUI(), true, this.panelPointControl);
                        }

                        this.ListPointUI[i].StrCoordX = face.RelativePointList[i].X.ToString();
                        this.ListPointUI[i].StrCoordZ = face.RelativePointList[i].Y.ToString();

                        if (face.RelativePointList[i].LineKind == EMLineKind.ARC)
                        {
                            this.ListPointUI[i].IsArc = true;
                        }
                        else
                        {
                            this.ListPointUI[i].IsArc = false;
                        }

                        if (face.RelativePointList[i].DirectionArc == EMDirectionArc.BACKWARD)
                        {
                            this.ListPointUI[i].IsArcDirection = true;
                        }
                        else
                        {
                            this.ListPointUI[i].IsArcDirection = false;
                        }
                    }
                }
                else
                {
                    CNotice.printLogID("UAWF");
                    return;
                }

                /// 수정을 할때는 형상 과 Node Type 변경을 못하도록 한다.
                comboBoxFaceType.Enabled = false;

                comboBoxNodeType.SelectedItem = m_partType.ToString();

                if (m_partType != EMKind.NON_KIND)
                {
                    comboBoxNodeType.Enabled = false;
                }
            }
            catch (Exception ex)
            {
                CNotice.printLog(ex.Message);
            }
        }