コード例 #1
0
        /// Adds a field to the class
        public void BindToField(Stetic.Component obj)
        {
            if (targetObject == null)
            {
                return;
            }

            string name = GetMemberName(obj);
            IType  cls  = GetClass();

            if (FindField(cls, name) != null)
            {
                return;
            }

            Document doc = IdeApp.Workbench.OpenDocument(cls.CompilationUnit.FileName, true);

            IEditableTextFile editor = doc.GetContent <IEditableTextFile> ();

            if (editor != null)
            {
                CodeRefactorer gen = GetCodeGenerator();
                gen.AddMember(cls, GetFieldCode(obj, name));
            }
        }
コード例 #2
0
        /// Adds a signal handler to the class
        public void BindSignal(Stetic.Signal signal)
        {
            if (targetObject == null)
            {
                return;
            }

            IType cls = GetClass();

            if (cls == null)
            {
                return;
            }

            if (FindSignalHandler(cls, signal) != null)
            {
                return;
            }

            CodeMemberMethod met = new CodeMemberMethod();

            met.Name       = signal.Handler;
            met.Attributes = MemberAttributes.Family;
            met.ReturnType = new CodeTypeReference(signal.SignalDescriptor.HandlerReturnTypeName);

            foreach (Stetic.ParameterDescriptor pinfo in signal.SignalDescriptor.HandlerParameters)
            {
                met.Parameters.Add(new CodeParameterDeclarationExpression(pinfo.TypeName, pinfo.Name));
            }
            CodeRefactorer gen = GetCodeGenerator();

            gen.AddMember(cls, met);
        }