public static string GetValue <T>(this IViewComponent instance, string name, T value)
        {
            ModelState         state;
            string             formattedValue = string.Empty;
            ViewDataDictionary viewData       = instance.ViewContext.ViewData;

            object valueFromViewData = name.HasValue() ? viewData.Eval(name) : null;

            if (name.HasValue() && viewData.ModelState.TryGetValue(name, out state) && (state.Value != null))
            {
                formattedValue = state.Value.AttemptedValue;
                if (viewData.ModelState.IsValidField(name))
                {
                    formattedValue = "{0}".FormatWith(state.Value.ConvertTo(typeof(T), state.Value.Culture));
                }
            }
            else if (value != null)
            {
                formattedValue = "{0}".FormatWith(value);
            }
            else if (valueFromViewData != null && valueFromViewData.GetType().IsPredefinedType())
            {
                formattedValue = "{0}".FormatWith(valueFromViewData);
            }

            return(formattedValue);
        }
 private void AddFieldView(int currRow, IViewComponent childView, ViewBuildersCollection viewBuilders)
 {
     if (childView.UiHint == "RowsPanel")
     {
         var newCtrl = new RowsPanelView();
         newCtrl.SetViewComponent((IPanelViewModel)childView, viewBuilders);
         Grid.SetRow(newCtrl, currRow);
         Grid.SetColumn(newCtrl, 1);
         Grid.SetColumnSpan(newCtrl, 4);
         ChildrenViewsContainer.Children.Add(newCtrl);
     }
     else
     {
         var viewBuilder = viewBuilders.GetBuilder(childView.UiHint);
         if (viewBuilder != null)
         {
             var newCtrl = viewBuilder.ViewFactory(childView);
             if (newCtrl != null)
             {
                 Grid.SetRow(newCtrl, currRow);
                 Grid.SetColumn(newCtrl, 1);
                 if (childView.UiHint == "PivotGridList")
                 {
                     Grid.SetColumnSpan(newCtrl, 4);
                 }
                 ChildrenViewsContainer.Children.Add(newCtrl);
             }
         }
     }
 }
Example #3
0
        private Xamarin.Forms.View CreateSetDataContext <TView>(Type viewType, IViewComponent childView) where TView : Xamarin.Forms.View
        {
            var newCtrl = Activator.CreateInstance <TView>();

            newCtrl.BindingContext = childView;
            return(newCtrl);
        }
Example #4
0
        private static UserControl CreateField(IViewComponent childView, ViewBuildersCollection viewBuilders, Grid ChildrenViewsContainer)
        {
            UserControl newCtrl;

            if (childView.UiHint == "RowsPanel")
            {
                newCtrl = new RowsPanelView();
                ((RowsPanelView)newCtrl).SetViewComponent((IPanelViewModel)childView, viewBuilders);
                ChildrenViewsContainer.Children.Add(newCtrl);
            }
            else if (childView.UiHint == "ColumnsPanel")
            {
                newCtrl = new ColumnsPanelView();
                ((ColumnsPanelView)newCtrl).SetViewComponent((IPanelViewModel)childView, viewBuilders);
                ChildrenViewsContainer.Children.Add(newCtrl);
            }
            else
            {
                newCtrl = viewBuilders.GetBuilder(childView.UiHint).ViewFactory(childView);
                if (newCtrl != null)
                {
                    ChildrenViewsContainer.Children.Add(newCtrl);
                }
            }

            return(newCtrl);
        }
Example #5
0
        private UserControl CreateSetDataContext <TView>(Func <TView> constructor, IViewComponent childView) where TView : UserControl
        {
            var newCtrl = constructor();

            newCtrl.DataContext = childView;
            return(newCtrl);
        }
Example #6
0
        private UserControl CreateSetDataContext <TView>(Type viewType, IViewComponent childView) where TView : UserControl
        {
            var newCtrl = Activator.CreateInstance <TView>();

            newCtrl.DataContext = childView;
            return(newCtrl);
        }
 public static bool IsValid(this IViewComponent instance)
 {
     if (instance.ViewContext != null)
     {
         return(instance.ViewContext.ViewData.ModelState.IsValidField(instance.Name ?? string.Empty));
     }
     return(true);
 }
Example #8
0
        public void Add(string text, IViewComponent component, Bitmap?image = null)
        {
            var item = new ToolStripMenuItemFormat(this, text, component);

            item.ImageScaling = ToolStripItemImageScaling.None;
            item.Image        = image;
            _tool.DropDownItems.Add(item);
        }
Example #9
0
        public static void AddFieldViewAsRow(int currRow, IViewComponent childView, ViewBuildersCollection viewBuilders, Grid ChildrenViewsContainer)
        {
            UserControl newCtrl = null;

            newCtrl = CreateField(childView, viewBuilders, ChildrenViewsContainer);
            if (newCtrl != null)
            {
                Grid.SetRow(newCtrl, currRow);
                Grid.SetColumn(newCtrl, 1);
            }
        }
        public static string GetValueFromViewDataByName(this IViewComponent instance)
        {
            string result = instance.ViewContext.Controller.ValueOf <string>(instance.Name);

            if (result.HasValue())
            {
                return(result);
            }

            object value = instance.ViewContext.ViewData.Eval(instance.Name);

            return(value != null && value.GetType().IsPredefinedType() ? Convert.ToString(value) : string.Empty);
        }
        private void AddLabelView(int currRow, IViewComponent childView)
        {
            var label = new Label()
            {
                Text = childView.Label
            };

            Grid.SetRow(label, currRow);
            Grid.SetColumn(label, 0);
            //label.VerticalAlignment = VerticalAlignment.Center;
            //label.HorizontalAlignment = HorizontalAlignment.Right;
            label.Margin = new Thickness(16, 0, 8, 0);
            ChildrenViewsContainer.Children.Add(label);
        }
 private void Awake()
 {
     viewComponent              = ViewObject.GetComponent <IViewComponent>();
     viewComponent.ViewChanged += UpdateView;
 }
 public ToolStripMenuItemFormat(TextFormatTool tool, string text, IViewComponent component) :
     base(text)
 {
     _tool     = tool;
     Component = component;
 }
Example #14
0
        }//UpdateView

        public void RegisterForUpdate(IViewComponent component)
        {
            if (!registeredForUpdates[m_model].Contains(component.IViewHelper))
            {
                registeredForUpdates[m_model].Add(component.IViewHelper);
            }
        }
Example #15
0
        static void Main(string[] args)
        {
            int portStart = int.Parse(args[0]);
            int capacity  = int.Parse(args[1]);

            var tickRate = TimeSpan.FromMilliseconds(10); // 100 ticks per second

            var world         = new World();
            var timeComponent = new World.Entity.TimeComponent(new World.Entity(world))
            {
                deltaTime = tickRate.TotalSeconds
            };

            _ = new World.Entity.ConsoleBufferComponent(new World.Entity(world))
            {
                consoleBuffer = new byte[120, 32]
            };

            var server = new Server <(World, int), (float, float)>(
                initialClientState: (0f, 0f),
                serverStatesByTick: world,
                serverStateDiffer: new World.Differ(),
                clientStateDiffer: new Vector2Differ(),
                portStart: portStart,
                capacity: capacity,
                sendInterval: TimeSpan.FromSeconds(0.1));

            var velocityComponents = new IVelocityComponent[capacity];
            var positionComponents = new IPositionComponent[capacity];
            var viewComponents     = new IViewComponent[capacity];

            FixedTimer(tick => {
                lock (world) {
                    for (int i = 0; i < capacity; ++i)
                    {
                        int port = portStart + i;

                        if (server.GetClientConnected(port))
                        {
                            if (velocityComponents[i] == null)
                            {
                                var entity            = new World.Entity(world);
                                velocityComponents[i] = new World.Entity.VelocityComponent(entity)
                                {
                                    speed = 10f
                                };
                                positionComponents[i] = new World.Entity.PositionComponent(entity)
                                {
                                    x = Console.WindowWidth / 2,
                                    y = Console.WindowHeight / 2
                                };
                                viewComponents[i] = new World.Entity.ViewComponent(entity)
                                {
                                    avatar = new[] { '@', '#', '$', '%' }[i]
                                };
                            }

                            var input = server.GetClientState(port);
                            velocityComponents[i].deltaX = input.Item1;
                            velocityComponents[i].deltaY = input.Item2;

                            Console.SetCursorPosition(0, i * 2);
                            Console.Write($@"velocity: ({velocityComponents[i].deltaX}, {velocityComponents[i].deltaY})
position: ({positionComponents[i].x}, {positionComponents[i].y})");
                        }
                        else
                        {
                            if (velocityComponents[i] != null)
                            {
                                velocityComponents[i].Dispose();
                                velocityComponents[i] = null;
                            }

                            if (positionComponents[i] != null)
                            {
                                positionComponents[i].Dispose();
                                positionComponents[i] = null;
                            }

                            if (viewComponents[i] != null)
                            {
                                viewComponents[i].Dispose();
                                viewComponents[i] = null;
                            }
                        }
                    }

                    ((IServerWorld)world).Tick(tick);
                    server.serverTick = tick;
                }
            }, tickRate, new CancellationToken());
        }
Example #16
0
        // custom case - specify options
        public Boolean Import(IController validatingController, XmlDocument document, IViewComponent waitingFor, Form topLevelForm, Boolean pClearDB, Boolean pShowDialog , String title, String message)
        {
            clearDB = pClearDB;
            //document = new XmlDocument();
            //document.Load(@"C:\testFile.xml");
            if (!document.InnerXml.Equals(String.Empty) && validate(validatingController, document))
            {
                // Turn off all controller updates
                navDoc = document.CreateNavigator();
                XPathNodeIterator itConfigurations = navDoc.Select("/database/configuration");
                while (itConfigurations.MoveNext())
                {
                    String configuration = itConfigurations.Current.GetAttribute("name", itConfigurations.Current.NamespaceURI);
                    IController controller = AMEManager.Instance.Get(configuration);
                    if (controller == null)
                        return false;
                    updateStatus = controller.ViewUpdateStatus;

                    if (updateStatus)
                    {
                        controller.TurnViewUpdateOff();
                    }
                    controller.AllowProgrammaticCreation = false;
                    controller.UseDelayedValidation = true;
                    controller.CacheIndexLinkTypes();
                }

                if (pShowDialog)
                {
                    topLevelForm.Invoke(new DialogDelegate(CreateDialog), new object[] { title, message });
                }

                if (waitingFor != null)
                {
                    waitingComponent = waitingFor;
                }

                backgroundWorker.RunWorkerAsync(document.InnerXml);

                return true;
            }
            else
            {
                return false;
            }
        }
Example #17
0
 public void RegisterForUpdate(IViewComponent component, List<String> parameterCategories)
 {
     component.IViewHelper.ParameterCategories = parameterCategories;
     RegisterForUpdate(component);
 }
        public static IDictionary <string, object> GetUnobtrusiveValidationAttributes(this IViewComponent instance)
        {
#if MVC3
            var viewContext = instance.ViewContext;

            if (viewContext.UnobtrusiveJavaScriptEnabled)
            {
                var name       = instance.Name;
                var viewData   = viewContext.ViewData;
                var htmlPrefix = viewData.TemplateInfo.HtmlFieldPrefix;

                if (name.HasValue() && htmlPrefix.HasValue() && name != htmlPrefix && name.StartsWith(htmlPrefix, StringComparison.Ordinal))
                {
                    name = name.Substring(htmlPrefix.Length + 1);
                }

                var metadata   = ModelMetadata.FromStringExpression(name, viewData);
                var htmlHelper = new HtmlHelper(viewContext, new ViewComponentViewDataContainer {
                    ViewData = viewData
                });

                if (metadata.ContainerType == null)
                {
                    metadata = viewContext.ViewData.ModelMetadata;
                }

                return(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata));
            }
#endif
            return(null);
        }
Example #19
0
        private Xamarin.Forms.View CreateSetDataContext <TView>(Func <TView> constructor, IViewComponent childView) where TView : Xamarin.Forms.View
        {
            var newCtrl = constructor();

            newCtrl.BindingContext = childView;
            return(newCtrl);
        }
Example #20
0
 public void UnregisterForUpdate(IViewComponent component)
 {
     if (registeredForUpdates[m_model].Contains(component.IViewHelper))
     {
         registeredForUpdates[m_model].Remove(component.IViewHelper);
     }
 }
 public static string GetValue <T>(this IViewComponent instance, T value)
 {
     return(instance.GetValue <T>(instance.Name, value));
 }
Example #22
0
 public ViewComponentHelper(IViewComponent iv, UpdateType updateType)
     : this(iv)
 {
     myUpdateType = updateType;
 }
Example #23
0
 public ViewComponentHelper(IViewComponent iv)
 {
     myIView = iv;
 }
 public NonControlViewComponentHelper(IViewComponent iv) : base(iv) {}
 public NonControlViewComponentHelper(IViewComponent iv, UpdateType updateType) : base(iv, updateType) {}