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(); }
/// <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); }