/// <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; }
/// <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); } }