示例#1
0
        /// <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);
        }
示例#2
0
        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();
        }
示例#3
0
 /// <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);
     }
 }
示例#4
0
        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);
        }
示例#5
0
        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;
                    }
                }
            }
        }