protected override void Run() { // do a validation if (FieldConstant.CheckSyntax(m_GetConstantDialog.m_dataType, m_GetConstantDialog.LiteralText)) { m_GetConstantDialog.Literal = new FieldConstant(m_GetConstantDialog.m_dataType, m_GetConstantDialog.LiteralText); } else { m_GetConstantDialog.setDefaultValues(); } }
protected override void Run() { // Don't need to do anything with SignalId, the tree does the work of filling in SignalId if (m_SignalChooserDialog.LiteralSelected) { // do a validation if (FieldConstant.CheckSyntax(m_SignalChooserDialog.OriginalSignalIn.DataType.DataType, m_SignalChooserDialog.LiteralText)) { m_SignalChooserDialog.Literal = new FieldConstant(m_SignalChooserDialog.OriginalSignalIn.DataType.DataType, m_SignalChooserDialog.LiteralText); } else { m_SignalChooserDialog.setDefaultValues(); } } }
public static IEnumerable <Tuple <NodeSignal, object> > ParseEncodedSignals(string encoded, IEnumerable <NodeSignal> signals) { // parse it all into values var dict = new Dictionary <FieldGuid, object>(); int index = 0; bool found = true; while (found) { found = false; int commaPos1 = encoded.IndexOf(SEPARATOR, index); if (commaPos1 > 0) // signalId { int commaPos2 = encoded.IndexOf(SEPARATOR, commaPos1 + 1); if (commaPos2 > 0) // DataType { int commaPos3 = encoded.IndexOf(SEPARATOR, commaPos2 + 1); if (commaPos3 > 0) // value length { string valueLengthString = encoded.Substring(commaPos2 + 1, commaPos3 - commaPos2 - 1); int valueLength; if (int.TryParse(valueLengthString, out valueLength)) { string valueString = encoded.Substring(commaPos3 + 1, valueLength); if (valueString.Length == valueLength) { string guidString = encoded.Substring(index, commaPos1 - index); if (FieldGuid.CheckSyntax(guidString)) { var signalId = new FieldGuid(guidString); string dataTypeString = encoded.Substring(commaPos1 + 1, commaPos2 - commaPos1 - 1); FieldDataType.DataTypeEnum dataType; if (Enum.TryParse <FieldDataType.DataTypeEnum>(dataTypeString, out dataType)) { if (FieldConstant.CheckSyntax(dataType + FieldConstant.SEPARATOR + valueString)) { var constant = new FieldConstant(dataType + FieldConstant.SEPARATOR + valueString); found = true; index = commaPos3 + valueLength + 1 + END_OF_LINE.Length; dict.Add(signalId, constant.Value); } } } } } } } } } // match it up to the signals var retVal = new List <Tuple <NodeSignal, object> >(); foreach (var signal in signals) { if (dict.ContainsKey(signal.SignalId)) { retVal.Add(new Tuple <NodeSignal, object>(signal, dict[signal.SignalId])); } } return(retVal); }