예제 #1
0
 public bool IsWebClientValue()
 {
     if (_valuePointer == null)
     {
         return(false);
     }
     return(DesignUtil.IsWebClientObject(_valuePointer));
 }
예제 #2
0
 public void AddProperty(IProperty p)
 {
     if (_dataTransfers == null)
     {
         _dataTransfers = new Dictionary <IProperty, ParameterValue>();
     }
     foreach (IProperty p0 in _dataTransfers.Keys)
     {
         if (p0.IsSameObjectRef(p))
         {
             return;
         }
     }
     if (_rootClass.IsWebPage)
     {
         EnumWebActionType at = EnumWebActionType.Unknown;
         Dictionary <IProperty, ParameterValue> .KeyCollection.Enumerator en = _dataTransfers.Keys.GetEnumerator();
         while (en.MoveNext())
         {
             bool isClient = DesignUtil.IsWebClientObject(en.Current);
             bool isServer = DesignUtil.IsWebServerObject(en.Current);
             if (isClient && !isServer)
             {
                 at = EnumWebActionType.Client;
                 break;
             }
             else if (!isClient && isServer)
             {
                 at = EnumWebActionType.Server;
                 break;
             }
         }
         if (at == EnumWebActionType.Server)
         {
             if (DesignUtil.IsWebClientObject(p))
             {
                 MessageBox.Show(string.Format(CultureInfo.InvariantCulture,
                                               "Cannot add a client property [{0}] because there are server properties in the list", p.ExpressionDisplay), "Data transfer", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 return;
             }
         }
         else if (at == EnumWebActionType.Client)
         {
             if (DesignUtil.IsWebServerObject(p))
             {
                 MessageBox.Show(string.Format(CultureInfo.InvariantCulture,
                                               "Cannot add a server property [{0}] because there are client properties in the list", p.ExpressionDisplay), "Data transfer", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 return;
             }
         }
     }
     _dataTransfers.Add(p, CreateDefaultParameter(p));
 }
예제 #3
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            bool      isWebComponent = DesignUtil.IsWebClientObject(_event.Owner);
            EventPath ep             = this.Parent as EventPath;

            if (ep != null)
            {
                ep.SelectEventIcon(this);
            }
            if (e.Button == MouseButtons.Right)
            {
                ContextMenu        menu = new ContextMenu();
                MenuItemWithBitmap mi;
                mi = new MenuItemWithBitmap("Assign actions", mi_assignActions, Resources._eventHandlers.ToBitmap());
                menu.MenuItems.Add(mi);
                if (isWebComponent)
                {
                    mi = new MenuItemWithBitmap("Add client handler actions", mi_addWebClientHandlerClientActs, Resources._handlerMethod.ToBitmap());
                    menu.MenuItems.Add(mi);
                    mi = new MenuItemWithBitmap("Add server handler actions", mi_addWebClientHandlerServerActs, Resources._webServerHandler.ToBitmap());
                    menu.MenuItems.Add(mi);
                    mi = new MenuItemWithBitmap("Add client and download handler actions", mi_addWebClientHandlerDownloadActs, Resources._webHandler2.ToBitmap());
                }
                else
                {
                    mi = new MenuItemWithBitmap("Add handler method", mi_addHandler, Resources._handlerMethod.ToBitmap());
                }
                menu.MenuItems.Add(mi);
                menu.MenuItems.Add("-");
                if (IsCustomEventForRoot)
                {
                    mi = new MenuItemWithBitmap("Create event-firing action", mi_createEventFireMethod, Resources._createEventFireAction.ToBitmap());
                    menu.MenuItems.Add(mi);
                    menu.MenuItems.Add("-");
                    mi = new MenuItemWithBitmap("Delete event", mi_removeEvent, Resources._delEvent.ToBitmap());
                    menu.MenuItems.Add(mi);
                }
                else
                {
                    mi = new MenuItemWithBitmap("Remove event handling", mi_remove, Resources._cancel.ToBitmap());
                    menu.MenuItems.Add(mi);
                }
                menu.Show(this, e.Location);
            }
        }
예제 #4
0
 public EnumWebActionType CheckWebActionType()
 {
     if (_dataTransfers != null)
     {
         EnumWebRunAt        methodRunAt = EnumWebRunAt.Unknown;
         EnumWebValueSources sources     = EnumWebValueSources.Unknown;
         foreach (KeyValuePair <IProperty, ParameterValue> kv in _dataTransfers)
         {
             if (kv.Value != null && kv.Key != null)
             {
                 if (methodRunAt == EnumWebRunAt.Unknown)
                 {
                     if (kv.Key.RunAt == EnumWebRunAt.Client)
                     {
                         methodRunAt = EnumWebRunAt.Client;
                     }
                     else if (kv.Key.RunAt == EnumWebRunAt.Server)
                     {
                         methodRunAt = EnumWebRunAt.Server;
                     }
                 }
                 IList <ISourceValuePointer> list = kv.Value.GetValueSources();
                 if (list != null && list.Count > 0)
                 {
                     sources = WebBuilderUtil.GetActionTypeFromSources(list, sources);
                 }
             }
         }
         if (methodRunAt == EnumWebRunAt.Unknown)
         {
             if (DesignUtil.IsWebClientObject(this.Owner))
             {
                 methodRunAt = EnumWebRunAt.Client;
             }
             else
             {
                 methodRunAt = EnumWebRunAt.Server;
             }
         }
         return(WebBuilderUtil.GetWebActionType(methodRunAt, sources));
     }
     return(EnumWebActionType.Unknown);
 }
예제 #5
0
 public bool IsWebClientValue()
 {
     if (RunAt == EnumWebRunAt.Client)
     {
         return(true);
     }
     if (RunAt == EnumWebRunAt.Server)
     {
         return(false);
     }
     if (_property != null)
     {
         if (DesignUtil.IsWebClientObject(_property.Declarer))
         {
             return(true);
         }
     }
     return(false);
 }
 public bool IsWebClientValue()
 {
     if (_methodPointer != null)
     {
         MethodClass mc = _methodPointer.MethodPointed as MethodClass;
         if (mc != null)
         {
             if (mc.RunAt == EnumWebRunAt.Client)
             {
                 return(true);
             }
         }
         else
         {
             if (_methodPointer.MethodPointed != null)
             {
                 MethodInfoPointer mifp = _methodPointer.MethodPointed as MethodInfoPointer;
                 if (mifp != null && mifp.MethodInfo != null)
                 {
                     object[] vs = mifp.MethodInfo.GetCustomAttributes(typeof(WebClientMemberAttribute), true);
                     if (vs != null && vs.Length > 0)
                     {
                         return(true);
                     }
                     vs = mifp.MethodInfo.GetCustomAttributes(typeof(WebServerMemberAttribute), true);
                     if (vs != null && vs.Length > 0)
                     {
                         return(false);
                     }
                     return(DesignUtil.IsWebClientObject(mifp));
                 }
             }
         }
     }
     return(false);
 }
예제 #7
0
        public void CheckWebActionType()
        {
            _webActType = EnumWebActionType.Unknown;
            EnumWebValueSources         sources         = EnumWebValueSources.Unknown;
            IList <ISourceValuePointer> conditionSource = null;

            if (_condition != null)
            {
                conditionSource = _condition.MathExp.GetValueSources();
                if (conditionSource != null)
                {
                    sources = WebBuilderUtil.GetActionTypeFromSources(conditionSource);
                }
            }
            if (_mathExp != null)
            {
                if (_mathExp.MathExpression != null)
                {
                    IList <ISourceValuePointer> lst = _mathExp.MathExpression.GetValueSources();
                    if (lst != null && lst.Count > 0)
                    {
                        sources = WebBuilderUtil.GetActionTypeFromSources(lst, sources);
                    }
                }
            }
            bool        executerIsClient = false;
            MethodClass mc = ScopeMethod as MethodClass;

            if (mc != null)
            {
                if (mc.WebUsage == EnumMethodWebUsage.Client)
                {
                    executerIsClient = true;
                }
            }
            else
            {
                if (_mathExp != null && _mathExp.Owner != null)
                {
                    if (DesignUtil.IsWebClientObject(_mathExp.Owner))
                    {
                        executerIsClient = true;
                    }
                }
                else
                {
                    if (_reader != null)
                    {
                        if (DesignUtil.IsWebClientObject(_reader.ObjectList.RootPointer as IClass))
                        {
                            executerIsClient = true;
                        }
                    }
                }
            }
            switch (sources)
            {
            case EnumWebValueSources.HasBothValues:
                if (executerIsClient)
                {
                    _webActType = EnumWebActionType.Download;
                }
                else
                {
                    _webActType = EnumWebActionType.Upload;
                }
                break;

            case EnumWebValueSources.HasClientValues:
                _webActType = EnumWebActionType.Client;
                break;

            case EnumWebValueSources.HasServerValues:
                _webActType = EnumWebActionType.Server;
                break;
            }
        }