Example #1
0
        public static void MountThis(BasewareUIElement baseUIElement, Point position, Grid container, Layout workingLayout)
        {
            bool bValid = IsValid(baseUIElement, position, container);

            if (!bValid)
            {
                if (baseUIElement is LabwareUIElement) //if labware has parent, let it go back
                {
                    LabwareUIElement labwareUIElement = (LabwareUIElement)baseUIElement;
                    if (labwareUIElement.Labware.ParentCarrier != null)
                    {
                        return;
                    }
                }

                container.Children.Remove(baseUIElement);
                if (baseUIElement is CarrierUIElement)
                {
                    RemoveUIElementsOnCarrier(container, baseUIElement as CarrierUIElement);
                }
                baseUIElement = null;
                return;
            }

            int grid = VisualCommon.FindCorrespondingGrid(position.X);

            if (baseUIElement is CarrierUIElement)
            {
                CarrierUIElement carrierUIElement = (CarrierUIElement)baseUIElement;
                carrierUIElement.Grid = grid;
            }

            if (baseUIElement is LabwareUIElement)
            {
                LabwareUIElement labwareUIElement = (LabwareUIElement)baseUIElement;
                Labware          labware          = labwareUIElement.Labware;
                CarrierUIElement carrierUIElement = null;
                int  siteID = -1;
                bool bFound = FindSuitableCarrier(position, labware.TypeName, container, ref carrierUIElement, ref siteID);
                if (bFound)
                {
                    if (labware.ParentCarrier != null)
                    {
                        labware.ParentCarrier.Labwares.Remove(labware);
                    }
                    labware.SiteID = siteID;
                    if (labware.IsDitiBox)
                    {
                        var ditiInfo = workingLayout.DitiInfo.DitiBoxInfos.Find(x => x.label == labware.Label);
                        if (ditiInfo == null)
                        {
                            DitiType ditiType = DitiBox.Parse(labware.TypeName);
                            workingLayout.DitiInfo.DitiBoxInfos.Add(new DitiBoxInfo(ditiType, labware.Label, 96));
                        }
                    }
                }
                carrierUIElement.Carrier.AddLabware(labware);
            }
        }
Example #2
0
        public StepDefinition(string[] strs, int no)
        {
            LineNumber = no;
            Volume     = 0;
            //DeadVolume = 0;
            Description = strs[(int)StepDefCol.Description];
            //RepeatTimes = lines[(int)StepDefCol.RepeatTimes];
            string sVolume = strs[(int)StepDefCol.Volume];

            if (sVolume == "")
            {
                return;
            }
            Volume = int.Parse(sVolume);
            //string sDeadVolume = lines[(int)StepDefCol.DeadVolume];
            //DeadVolume = int.Parse(sDeadVolume);
            SourceLabware = strs[(int)StepDefCol.SourceLabware];
            DestLabware   = strs[(int)StepDefCol.DestLabware];
            //TipType = lines[(int)StepDefCol.TipType];
            LiquidClass = strs[(int)StepDefCol.LiquidClass];
            DitiType    = DitiBox.Parse(strs[(int)StepDefCol.DitiType]);
        }
Example #3
0
        private void SetAsCurrentDiti_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            LayoutEditor layoutEditor = GetLayoutEditor();

            if (layoutEditor == null)
            {
                AddErrorInfo("找不到布局!");
                return;
            }
            Layout   layout   = layoutEditor.Layout;
            DitiInfo ditiInfo = layout.DitiInfo;
            Labware  labware  = e.Parameter as Labware;
            var      ditiType = DitiBox.Parse(labware.TypeName);

            if (ditiInfo.DitiBoxInfos.Find(x => x.type == ditiType) != null)
            {
                ditiInfo.DitiBoxInfos.Add(new DitiBoxInfo(ditiType, labware.Label, 96));
            }
            else
            {
                ditiInfo.SetUsingDitiBox(ditiType, labware.Label);
            }
            this.InvalidateVisual();
        }