Beispiel #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="subSet"></param>
        /// <param name="Strings"></param>
        /// <param name="sElem"></param>
        /// <param name="iIndent"></param>
        private void writeParamSet(TParameterSet subSet,
                                   List<string> Strings,
                                   string sElem,
                                   int iIndent)
        {
            string sLine;
            int Idx;

            if (!subSet.bRootNode())
                Strings.Add("");

            sLine = new string(' ', iIndent) + "<" + sElem + " name=\"" + subSet.sEnglishName + "\"";
            if (subSet.bRootNode())
                sLine += " version=\"" + subSet.sVersion + "\">";
            else
            {
                if (subSet.iLocaleCount() > 0)
                {
                    sLine += " locales=\"" + subSet.getLocale(0);
                    for (Idx = 1; Idx <= subSet.iLocaleCount() - 1; Idx++)
                        sLine += ";" + subSet.getLocale(Idx);
                    sLine += "\"";
                }
                sLine += ">";
            }
            Strings.Add(sLine);

            if (subSet.iTranslationCount() > 0)
                for (Idx = 0; Idx <= subSet.iTranslationCount() - 1; Idx++)
                {
                    sLine = new string(' ', iIndent + 2) + "<translate lang=\"" +
                             subSet.getTranslation(Idx).sLang + "\">" +
                             TTypedValue.escapeText(subSet.getTranslation(Idx).sText) + "</translate>";
                    Strings.Add(sLine);
                }

            for (Idx = 0; Idx <= subSet.iDefinitionCount() - 1; Idx++)
                writeParameters(subSet, subSet.getDefinition(Idx), Strings, iIndent + 2);
            for (Idx = 0; Idx <= subSet.iChildCount() - 1; Idx++)
                writeParamSet(subSet.getChild(Idx), Strings, "set", iIndent + 2);

            sLine = new string(' ', iIndent) + "</" + sElem + ">";
            if (!subSet.bRootNode() && (subSet.iChildCount() > 0))
                sLine += "<!-- " + subSet.sEnglishName + " -->";

            Strings.Add(sLine);
        }
Beispiel #2
0
        /// <summary>
        /// Parses the contents of a &lt;par&gt; element in an XML parameter document.         
        /// </summary>
        /// <param name="Params"></param>
        /// <param name="sTag"></param>
        /// <param name="sValues"></param>
        /// <param name="bPropagate"></param>
        private void readParamValues(ref TParameterSet Params, string sTag, string sValues, bool bPropagate)
        {
            TParameterDefinition Definition;
            string sValue;
            int Idx;

            sValues = sValues.Trim();

            if ((sTag != "") && (sValues != ""))
            {
                Definition = Params.getDefinition(sTag);
                if ((Definition == null) || (Definition.iDimension() > 1))
                    throw new Exception("Invalid tag when reading parameters: " + sTag);

                if (Definition.bIsScalar())                                                // Reference to a single value
                    assignParameter(ref Params, sTag, sValues, bPropagate);
                else
                {                                                                      // Reference to a list of values
                    for (Idx = 0; Idx <= Definition.iCount - 1; Idx++)
                    {
                        sValue = stripValue(ref sValues);
                        if (sValue != "")                                                  // Null string denotes "leave value at
                            assignParameter(ref Params, sTag + Definition.item(Idx).sPartName,             //   default"
                                             sValue, bPropagate);
                    }
                }
            }
        }