예제 #1
0
        // 해당 종류의 노드 갯수를 얻어 온다
        public int getKindNodeSize(EMKind kind)
        {
            int size = 0;

            foreach (CDataNode node in m_listDataNode)
            {
                if (node.KindKey == kind)
                    size++;
            }

            return size;
        }
예제 #2
0
        public bool addNode(CNode node)
        {
            if (isExistNode(node.NodeName) == true)
            {
                return(false);
            }

            string nodeName = node.NodeName;
            EMKind kind     = node.m_kindKey;

            switch (kind)
            {
            // 형상 파트를 추가하는 경우
            case EMKind.COIL:
            case EMKind.MAGNET:
            case EMKind.STEEL:
                // 남아있는 이름 리스트에 없으면 추가작업을 하지 않는다
                if (m_listRemainedShapeName.Contains(nodeName) == false)
                {
                    CNotice.printTrace("형상이 아닌 node 을 형상 객체처리를 하려고 합니다.");
                    return(false);
                }

                // Shape 명을 제거한다
                m_listRemainedShapeName.Remove(nodeName);
                break;

            // 시험 노드를 추가하는 경우
            default:
                // 남아있는 Shape 형상 명으로 예약되었거나 사용중이 이름이라면 추가 작업을 취소한다.
                if (enableUseNodeName(nodeName) == false)
                {
                    if (CSettingData.m_emLanguage == EMLanguage.Korean)
                    {
                        CNotice.noticeWarning("동일한 이름의 가상실험이 이미 존재 합니다.");
                    }
                    else
                    {
                        CNotice.noticeWarning("There is the same name experiment already.");
                    }

                    return(false);
                }

                break;
            }

            m_listNode.Add(node);

            return(true);
        }
예제 #3
0
        // 해당 종류의 노드 갯수를 얻어 온다
        public int getKindNodeSize(EMKind kind)
        {
            int size = 0;

            foreach (CNode node in m_listNode)
            {
                if (node.m_kindKey == kind)
                {
                    size++;
                }
            }

            return(size);
        }
예제 #4
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;
        }
예제 #5
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);
            }
        }
예제 #6
0
 private void comboBoxPartType_SelectedIndexChanged(object sender, EventArgs e)
 {
     // Type 의 가장 위에 PARTS 가 있어서 1을 더해 준다.
     m_partType = (EMKind)comboBoxNodeType.SelectedIndex + 1;
 }
예제 #7
0
        public PopupAddNode(EMKind kind, List <string> listRemainedShapeName)
        {
            InitializeComponent();

            // 추가 폼의 제목줄 변경
            switch (kind)
            {
            case EMKind.COIL:
                this.Text = "Select a Coil Part";
                break;

            case EMKind.MAGNET:
                this.Text = "Select a Magnet Part";
                break;

            case EMKind.STEEL:
                this.Text = "Select a Steel Part";
                break;

            case EMKind.FORCE_EXPERIMENT:
                this.Text = "Input a Force Experiment Name";
                break;

            case EMKind.SHOW_LIST:
                this.Text = "Check the Part Names";
                break;

            default:
                break;
            }

            if (kind != EMKind.SHOW_LIST)
            {
                groupBoxCheckPartsName.Visible = false;
                labelCheckPartsName1.Visible   = false;
                labelCheckPartsName2.Visible   = false;
            }

            // 형상 Node 이면 콤보박스를 활성 시킨다.
            if (kind == EMKind.COIL || kind == EMKind.MAGNET || kind == EMKind.STEEL || kind == EMKind.SHOW_LIST)
            {
                groupBoxExperiments.Enabled = false;
                textBoxNodeName.Enabled     = false;

                listViewNodeName.Enabled = true;

                ImageList imgListSize = new ImageList();
                imgListSize.ImageSize           = new Size(1, 15);
                listViewNodeName.SmallImageList = imgListSize;

                foreach (string shapeName in listRemainedShapeName)
                {
                    string[] arrayString = { shapeName };

                    var lvItem = new ListViewItem(arrayString);
                    listViewNodeName.Items.Add(lvItem);
                }

                // 레코드, 행, Row 의 개수를 확인한다.
                if (listViewNodeName.Items.Count != 0)
                {
                    // 첫번째 레코드로 선택한다.
                    listViewNodeName.Items[0].Selected = true;
                }

                this.m_bShapeNode = true;
            }
            // 형상 Node 가 아니면 텍스트 박스를 활성화 시킨다
            else
            {
                groupBoxParts.Enabled    = false;
                listViewNodeName.Enabled = false;

                textBoxNodeName.Enabled = true;

                switch (kind)
                {
                case EMKind.FORCE_EXPERIMENT:
                    textBoxNodeName.Text = "Force";
                    break;

                default:
                    break;
                }

                this.m_bShapeNode = false;
            }
        }