/// <summary>
        /// Generates control fields
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="classType">Type of the class.</param>
        /// <param name="method">The initialize method.</param>
        /// <param name="generateField">if set to <c>true</c> [generate field].</param>
        /// <returns></returns>
        public virtual CodeExpression Generate(DependencyObject source, CodeTypeDeclaration classType, CodeMemberMethod method, bool generateField)
        {
            SeriesPoint point    = source as SeriesPoint;
            string      typeName = point.GetType().Name;
            string      name     = "p_" + ElementGeneratorType.NameUniqueId;

            ElementGeneratorType.NameUniqueId++;

            /*
             * if (generateField)
             * {
             *  CodeMemberField field = new CodeMemberField(typeName, name);
             *  classType.Members.Add(field);
             * }
             */

            CodeComment comment = new CodeComment(name + " point");

            method.Statements.Add(new CodeCommentStatement(comment));

            CodeExpression fieldReference = null;

            //if (!generateField)
            {
                fieldReference = new CodeVariableReferenceExpression(name);
                CodeTypeReference variableType = new CodeTypeReference(typeName);
                CodeVariableDeclarationStatement declaration = new CodeVariableDeclarationStatement(variableType, name);
                declaration.InitExpression = new CodeObjectCreateExpression(typeName);
                method.Statements.Add(declaration);
            }

            /*
             * else
             * {
             *  fieldReference = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), name);
             *  method.Statements.Add(new CodeAssignStatement(fieldReference, new CodeObjectCreateExpression(typeName)));
             * }
             */

            CodeComHelper.GenerateField <float>(method, fieldReference, source, SeriesPoint.ArgumentProperty);
            CodeComHelper.GenerateField <float>(method, fieldReference, source, SeriesPoint.ValueProperty);

            return(fieldReference);
        }