public void loadSchemeFromFile(string fileName) { elementsStringToDetansMap = new Dictionary <string, DetansPair>(); rowToElementDictionary = new Dictionary <DataGridViewRow, Element>(); Scheme.currentScheme = new Scheme(fileName); List <Element> elementsList = Scheme.currentScheme.getElementsList(); int rowCount = 0; if (elementsList.Count > 0) { schemeDataGrid.Rows.Clear(); } for (int i = 0; i < elementsList.Count; i++, rowCount++) { Element element = elementsList[i]; DataGridViewRow row = new DataGridViewRow(); row = getElementRow(element, rowCount); rowToElementDictionary.Add(row, element); schemeDataGrid.Rows.Add(row); if (element is ActiveElement) { AcceptingElement acceptor = ((ActiveElement)element).dependingElement; if (acceptor != null) { row = getElementRow(acceptor, ++rowCount); rowToElementDictionary.Add(row, acceptor); schemeDataGrid.Rows.Add(row); } } } targetFormuleComboBox.SelectedItem = targetFormuleComboBox.Items[0]; targetFormuleComboBox.Enabled = true; schemeDataGrid.Enabled = true; calculateButton.Enabled = true; }
static List <Element> getElements(List <string> elementStrings) { List <Element> elementsList = new List <Element>(); foreach (string elementString in elementStrings) { string[] elementStringParts = elementString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string elementTypeString = getElementType(elementStringParts[0]); //if (elementTypeString == "FI" || elementTypeString == "B") // elementTypeString = "BI"; string name = elementStringParts[0]; int parametersCount = elementStringParts.Length; int knotsCount = parametersCount % 2 == 0 ? parametersCount - 2 : parametersCount - 1; string[] knots = new string[knotsCount]; Array.Copy(elementStringParts, 1, knots, 0, knotsCount); string value = parametersCount % 2 == 0 ? elementStringParts[parametersCount - 1] : ""; switch (elementTypeString) { case "N": elementsList.Add(new Nuller(name, knots)); break; case "R": elementsList.Add(new Resistor(name, knots, value)); break; case "g": elementsList.Add(new Conduction(name, knots, value)); break; case "c": elementsList.Add(new Capacity(name, knots, value)); break; case "L": elementsList.Add(new Inductance(name, knots, value)); break; case "FI": case "F": case "B": case "BI": elementsList.Add(new BI(name, knots, value)); break; case "H": case "HI": case "Hi": elementsList.Add(new HI(name, knots, value)); break; case "K": case "KU": elementsList.Add(new KU(name, knots, value)); break; case "G": case "GU": elementsList.Add(new GU(name, knots, value)); break; case "E": { AcceptingElement acceptor = getAcceptor(elementStrings, name); elementsList.Add(new E(name, knots, value, acceptor)); break; } case "J": { AcceptingElement acceptor = getAcceptor(elementStrings, name); elementsList.Add(new J(name, knots, value, acceptor)); break; } } } return(elementsList); }
public J(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor) : base(receivedName, receivedKnots, receivedValue, acceptor) { }
public ActiveElement(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor) : base(receivedName, receivedKnots, receivedValue) { dependingElement = acceptor; }
public J(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor) : base(receivedName, receivedKnots, receivedValue, acceptor) { }
public ActiveElement(string receivedName, string[] receivedKnots, string receivedValue, AcceptingElement acceptor) : base(receivedName, receivedKnots, receivedValue) { dependingElement = acceptor; }