private void Delete()
 {
     if (SelectedConnectionViewModelWithCoordinates != null)
     {
         SelectedConnectionViewModelWithCoordinates.connectionViewModel.Disconnect();
         ConnectionList.Remove(SelectedConnectionViewModelWithCoordinates);
         SelectedConnectionViewModelWithCoordinates = null;
     }
     if (SelectedGateViewModelWithCoordinates != null)
     {
         foreach (PinViewModel p in SelectedGateViewModelWithCoordinates.gateViewModel.AllPins)
         {
             var cvms = p.connectionViewMoedels;
             foreach (ConnectionViewModel c in p.connectionViewMoedels)
             {
                 foreach (ConnectionViewModelWithCoordinates cvmwc in ConnectionList)
                 {
                     if (Object.ReferenceEquals(c, cvmwc.connectionViewModel))
                     {
                         ConnectionList.Remove(cvmwc);
                         break;
                     }
                 }
             }
             while (cvms.Count != 0)
             {
                 cvms[0].Disconnect();
                 cvms.RemoveAt(0);
             }
         }
         GateList.Remove(SelectedGateViewModelWithCoordinates);
         SelectedGateViewModelWithCoordinates = null;
     }
 }
        public void GetGates()
        {
            var gates = dataFile
                        .Channels[SelectedChannelIndex + 1]
                        .Beams[SelectedBeamIndex + 1]
                        .Gates;

            for (int i = 1; i <= gates.Count; i++)
            {
                var gate = gates[i];
                GateList.Add(gate.Name);
            }

            // set first gate by default
            SelectedGateIndex = 0;

            // Beam index starts from 1
            GetGateInfo(SelectedGateIndex + 1);
        }
        /// <summary>
        /// Adds gate with coords in work area; 'registers' all its pins to allow selection and connection.
        /// </summary>
        /// <param name="gvmwc"></param>
        public void AddGate(GateViewModelWithCoordinates gvmwc)
        {
            if (gvmwc.gateViewModel.Name == "SOURCE" || gvmwc.gateViewModel.Name == "READER")
            {
                gvmwc.gateViewModel.ShowBottomLabels   = true;
                gvmwc.gateViewModel.NumberLabelVisible = true;
            }

            GateList.Add(gvmwc);

            if (gvmwc.gateViewModel.Name == "SOURCE" || gvmwc.gateViewModel.Name == "READER")
            {
                Renumber();
            }

            foreach (PinViewModel p in gvmwc.gateViewModel.inputPins)
            {
                InputPins.Add(p);
            }

            OutputPins.Add(gvmwc.gateViewModel.outputPin);
        }
        public void Load(WorkAreaSerialization ser)
        {
            #region Clear

            ConnectionList.Clear();
            GateList.Clear();

            InputPins.Clear();
            OutputPins.Clear();

            SelectedInputPin  = null;
            SelectedOutputPin = null;

            #endregion

            foreach (WorkAreaSerialization.GateModelWithCoordinates g in ser.GateList)
            {
                AddGate(new GateViewModelWithCoordinates(new GateViewModel(g.gate), g.X, g.Y));
            }

            GatesLoaded();

            RestoreConnections();
        }
Example #5
0
 /// <summary>
 /// Add a gate in the circuit to the list.
 /// </summary>
 /// <param name="gate">The gate to be added to the list</param>
 public void AddGate(Gate gate)
 {
     GateList.Add(gate);
 }