コード例 #1
0
 public void NotifyAfterUpdate(YamsterModel model)
 {
     changedModels.Add(new ChangedModel()
     {
         Model = model, ChangeType = YamsterModelChangeType.PropertyChanged
     });
 }
コード例 #2
0
 public void NotifyAfterAdd(YamsterModel model)
 {
     changedModels.Add(new ChangedModel()
     {
         Model = model, ChangeType = YamsterModelChangeType.Added
     });
 }
コード例 #3
0
 protected void NotifyViewChanged(YamsterViewChangeType changeType, YamsterModel model)
 {
     if (ViewChanged != null)
     {
         ViewChanged(this, new ViewChangedEventArgs(changeType, model));
     }
 }
コード例 #4
0
        protected Expression CompileTargetExpression(YqlCompiler compiler, out YqlCompiledNode[] compiledArgs)
        {
            Type targetType = YamsterModel.GetModelClass(this.TargetObjectType);

            Expression targetExpression;

            if (TargetObject != null)
            {
                var compiledTargetObject = compiler.CompileNode(TargetObject);
                if (compiledTargetObject.Expression.Type != targetType)
                {
                    ReportError("The target object is " + compiledTargetObject.Expression.Type.Name
                                + ", which cannot be converted to " + targetType.Name);
                }
                targetExpression = compiledTargetObject.Expression;
                compiledArgs     = new[] { compiledTargetObject };
            }
            else
            {
                if (compiler.ModelType != TargetObjectType)
                {
                    ReportError("This expression attempts to retrieve a {0} property from the"
                                + " current context item, which is a {1} object",
                                this.TargetObjectType, compiler.ModelType);
                }

                switch (compiler.ModelType)
                {
                case YamsterModelType.Thread:
                    targetExpression = Expression.Property(compiler.ExecutionContextParameter,
                                                           YqlExecutionContext.Info_Thread);
                    break;

                case YamsterModelType.Message:
                    targetExpression = Expression.Property(compiler.ExecutionContextParameter,
                                                           YqlExecutionContext.Info_Message);
                    break;

                default:
                    throw new NotSupportedException();
                }
                compiledArgs = new YqlCompiledNode[0];
            }
            return(targetExpression);
        }
コード例 #5
0
 public ViewChangedEventArgs(YamsterViewChangeType changeType, YamsterModel model)
 {
     this.ChangeType = changeType;
     this.Model      = model;
 }