/// 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)); } }
/// 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); }