// 해당 종류의 노드 갯수를 얻어 온다 public int getKindNodeSize(EMKind kind) { int size = 0; foreach (CDataNode node in m_listDataNode) { if (node.KindKey == kind) size++; } return size; }
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); }
// 해당 종류의 노드 갯수를 얻어 온다 public int getKindNodeSize(EMKind kind) { int size = 0; foreach (CNode node in m_listNode) { if (node.m_kindKey == kind) { size++; } } return(size); }
/// <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); } }
private void comboBoxPartType_SelectedIndexChanged(object sender, EventArgs e) { // Type 의 가장 위에 PARTS 가 있어서 1을 더해 준다. m_partType = (EMKind)comboBoxNodeType.SelectedIndex + 1; }
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; } }