/// <summary> /// Получаем цвет для кнопки, в зависимости от глубины заболевания на данной поверхности. /// </summary> /// <param name="chkb">Кнопка(поверхность)</param> /// <returns>Цвет для кнопки </returns> Color GetColorForButton(CheckBox chkb) { Color col = Color.Transparent; //цвет Face.faceSide faceName = GetFaceNameFromCheckBox(chkb); //получаем название поверхности от кнопки Face face = currentFormTooth.GetFace(faceName, false); //создаем поверхность и находим ее у зуба, в случае если у зуба такая поверхность еще не создана и не описана, возвращает NULL if (face == null || face.GetConditionsOfFace().Count == 0) { col = Color.Transparent; //если поверхностей еще нет у зуба, тогда оставляем цвет прозрачным и три линии перпендикулярны друг другу. } else { int minLayer = face.GetConditionsOfFace().Min(f => f.layer); List <Condition> minLayerCondiList = face.GetConditionsOfFace().Where(c => c.layer == minLayer).ToList(); List <Condition> maxDepthCondiList = minLayerCondiList.Where(c => c.Depth == (minLayerCondiList.Max(g => g.Depth))).ToList(); col = maxDepthCondiList[0].colorOfCondition; } //else { // Condition.conditionOfFace ds = new Condition.conditionOfFace();//создаем переменную Диагноз поверхности. // foreach (Condition ill in face.GetConditionsOfFace())//перебираем все заболевания поверхности // { // if (ds < ill.NameOfIll) ds = ill.NameOfIll; // } // switch (ds)// определяем цвет кнопки по диагнозу // { // case Condition.conditionOfFace.car: col = Color.Red; // break; // case Condition.conditionOfFace.plomb: col = Color.Gold; // break; // case Condition.conditionOfFace.defect: col = Color.DarkGray; // break; // case Condition.conditionOfFace.contact: col = Color.Cyan; // break; // case Condition.conditionOfFace.klinDef: col = Color.LimeGreen; // break; // default: col = Color.Transparent; // break; // } //} return(col); }
private void face_DragDrop(object sender, DragEventArgs e) { CheckBox checkBoxSender = (CheckBox)sender; Face.faceSide faceConnectName = GetFaceNameFromCheckBox(checkBoxSender); List <Face.faceSide> connectedFaces = new List <Face.faceSide>(); connectedFaces.Add(GetFaceNameFromCheckBox(checkBoxSender)); connectedFaces.Add(faceWhichDragged.faceName); Tooth.connect con = GetConnection(connectedFaces); if (con != Tooth.connect.empty) { currentFormTooth.SwitchConnection(con); } UpdateConnections(); }
/// <summary> /// Получить копию поверхности /// </summary> /// <param name="faceNamed">Имя поверхности которую скопировать</param> /// <param name="createNew">Создать ли новую если такой поверхности еще нет у зуба</param> /// <returns>Возвращает новую поверхность, либо null в случае если не было отмечено создавать новую поверхность и у зуба еще нет такой поверхности.</returns> public Face GetCopyedFace(Face.faceSide faceNamed, bool createNew) { foreach (Face fc in _facesOfTeeth) { if (fc.faceName == faceNamed) { return(fc.Copy()); } } if (createNew) { Face newFace = new Face(); newFace.faceName = faceNamed; AddFace(newFace, false); return(newFace); } else { return(null); } }
List <Face.faceSide> NotAvailableConnections(Face.faceSide faceToKnow) { List <Face.faceSide> notAvailableCon = new List <Face.faceSide>(); switch (faceToKnow) { case Face.faceSide.distal: notAvailableCon.Add(Face.faceSide.medial); break; case Face.faceSide.edge: notAvailableCon.Add(Face.faceSide.okklusion); break; case Face.faceSide.lingual: notAvailableCon.Add(Face.faceSide.palatinal); notAvailableCon.Add(Face.faceSide.vestibular); break; case Face.faceSide.medial: notAvailableCon.Add(Face.faceSide.distal); break; case Face.faceSide.okklusion: notAvailableCon.Add(Face.faceSide.edge); break; case Face.faceSide.palatinal: notAvailableCon.Add(Face.faceSide.lingual); notAvailableCon.Add(Face.faceSide.vestibular); break; case Face.faceSide.vestibular: notAvailableCon.Add(Face.faceSide.lingual); notAvailableCon.Add(Face.faceSide.palatinal); break; } return(notAvailableCon); }
private void contextMenuStrip1_Opened(object sender, EventArgs e) { currentChckBx = (CheckBox)((ContextMenuStrip)sender).SourceControl; Face.faceSide clickedFace = GetFaceNameFromCheckBox(currentChckBx); Face currFace = currentFormTooth.GetFace(GetFaceNameFromCheckBox(currentChckBx), true); //получаем поверхность у зуба //foreach (Condition cond in currFace.GetConditionsOfFace()) //{ //} //List<ToolStripItem> needToCheckItems = new List<ToolStripItem>(); foreach (ToolStripMenuItem tsmi in FaceConditionsMenu.Items) { Condition condWhichHaveOnFace = currFace.GetConditionsOfFace().Find(c => c.Name == tsmi.Text); if (condWhichHaveOnFace == null) { tsmi.Checked = false; if (tsmi.DropDownItems.Count > 0) { foreach (ToolStripMenuItem ts in tsmi.DropDownItems) { ts.Checked = false; } } } else { tsmi.Checked = true; if (tsmi.DropDownItems.Count > 0) { foreach (ToolStripMenuItem ts in tsmi.DropDownItems) { //condWhichHaveOnFace = currFace.GetConditionsOfFace().Find(c => c.GetCurrentDepth() == ts.Text); if (condWhichHaveOnFace.GetCurrentDepth() == ts.Text) { ts.Checked = true; } else { ts.Checked = false; } } } } Condition cond = KlisheParams.conditionOfFaceList.Find(c => c.Name == tsmi.Text); if (cond != null) { if (cond.availableFaces.Contains(clickedFace) || cond.availableFaces.Contains(Face.faceSide.all)) { tsmi.Visible = true; } else { tsmi.Visible = false; } } } }