Пример #1
0
 public ActionResult CreateWidget(WidgetPosition? position, int? columnId)
 {
     ViewBag.AdminHeader = "Добавить Widget";
     ViewBag.Title = ViewBag.AdminHeader;
     ViewBag.ColumnId = columnId;
     ViewBag.Position = position;
     return View();
 }
        public WidgetPosition GetNewWidgetPositon(Grid container)
        {
            WidgetPosition newPosition = FindMaxContainerChildPoisition(container);

            newPosition.Row += 1;
            if (newPosition.Column == -1)
            {
                newPosition.Column = 0;
            }
            return(newPosition);
        }
Пример #3
0
        internal Transform GetSlot(WidgetPosition widgetEnum)
        {
            Transform slot = null;

            foreach (GameObject placement in _placementSlots)
            {
                if (placement.name == widgetEnum.ToString())
                {
                    slot = placement.transform;
                }
            }

            return(slot);
        }
        private void EnsureWidgetPositon(Grid container, WidgetPosition position)
        {
            WidgetPosition maxPosition = FindMaxContainerRowColumnDefinitions(container);
            // find max rows and columns in the container
            int maxRows = maxPosition.Row + 1;
            int maxCols = maxPosition.Column + 1;

            for (int iter = 0; iter < container.Children.Count; iter++)
            {
                if (container.Children[iter] is IWidgetContainer)
                {
                    IWidgetContainer widgetContainer = container.Children[iter] as IWidgetContainer;
                    int rowCountReq = widgetContainer.Position.Row + widgetContainer.Position.RowSpan;
                    int colCountReq = widgetContainer.Position.Column + widgetContainer.Position.ColSpan;
                    if (rowCountReq > maxRows)
                    {
                        maxRows = rowCountReq;
                    }
                    if (colCountReq > maxCols)
                    {
                        maxCols = colCountReq;
                    }
                }
            }

            // Add adequate number of row and column definitions
            // Find rows deficit
            int rowDeficit = position.Row + position.RowSpan - maxRows;
            int colDeficit = position.Column + position.ColSpan - maxCols;

            if (rowDeficit > 0)
            {
                // add deficit rows
                for (int i = 0; i < rowDeficit; i++)
                {
                    container.RowDefinitions.Add(GetNewRowDefinition());
                }
            }

            if (colDeficit > 0)
            {
                // add deficit columns
                for (int i = 0; i < colDeficit; i++)
                {
                    container.ColumnDefinitions.Add(GetNewColDefinition());
                }
            }
        }
        public void RemoveEmptyRowsAndColumns(Grid container)
        {
            // Deleting the rows and column at the end that are empty
            WidgetPosition maxChildPosition    = FindMaxContainerChildPoisition(container);
            WidgetPosition maxChildDefinitions = FindMaxContainerRowColumnDefinitions(container);
            // finding the row surplus
            int rowSurplus = maxChildDefinitions.Row - maxChildPosition.Row;

            for (int iter = 0; iter < rowSurplus; iter++)
            {
                container.RowDefinitions.RemoveAt(0);
            }
            // finding the column surplus
            int columnSurplus = maxChildDefinitions.Column - maxChildPosition.Column;

            for (int iter = 0; iter < columnSurplus; iter++)
            {
                container.ColumnDefinitions.RemoveAt(0);
            }
            //todo add feature to remove empty rows and columns in between also
        }
 public WidgetPositionEditorVM(WidgetPosition position, WidgetDimension dimension)
 {
     mWidgetPosition  = new WidgetPosition(position);
     mWidgetDimension = new WidgetDimension(dimension);
 }
 public WidgetPositionEditorVM()
 {
     mWidgetPosition  = new WidgetPosition();
     mWidgetDimension = new WidgetDimension();
 }
 public WidgetPositionEditorWindow(WidgetPosition position, WidgetDimension dimension)
 {
     InitializeComponent();
     mWidgetPositionVM = new WidgetPositionEditorVM(position, dimension);
     DataContext       = mWidgetPositionVM;
 }
Пример #9
0
 public async Task <WidgetModel> GetByPositionAsync(WidgetPosition position)
 {
     return(_mapper.Map <WidgetModel>(await _widgetRepository.GetByPositionAsync(position)));
 }
Пример #10
0
 private void ClearWidgetCache(WidgetPosition position)
 {
     _cacheHelper.Clear(CacheKey.GetAllWidgets);
 }
        private void Changed(object sender, EventArgs eArgs)
        {
            // https://github.com/nagasudhirpulla/wpf_scada_dashboard/blob/master/WPFScadaDashboard/DashboardUserControls/DashboardUC.xaml.cs
            if (sender is IWidgetContainer widget)
            {
                if (eArgs is CellPosChangeReqArgs cellPosChangeArgs)
                {
                    if (cellPosChangeArgs != null && widget != null)
                    {
                        if (cellPosChangeArgs.MessageType == CellPosChangeMsgType.POS_DOWN)
                        {
                            WidgetPosition newWidgetPosition = new WidgetPosition(widget.Position);
                            newWidgetPosition.Row += 1;
                            ChangeWidgetPosition(widget, newWidgetPosition);
                        }
                        if (cellPosChangeArgs.MessageType == CellPosChangeMsgType.POS_UP)
                        {
                            WidgetPosition newWidgetPosition = new WidgetPosition(widget.Position);
                            newWidgetPosition.Row -= 1;
                            ChangeWidgetPosition(widget, newWidgetPosition);
                        }
                        if (cellPosChangeArgs.MessageType == CellPosChangeMsgType.POS_LEFT)
                        {
                            WidgetPosition newWidgetPosition = new WidgetPosition(widget.Position);
                            newWidgetPosition.Column -= 1;
                            ChangeWidgetPosition(widget, newWidgetPosition);
                        }
                        if (cellPosChangeArgs.MessageType == CellPosChangeMsgType.POS_RIGHT)
                        {
                            WidgetPosition newWidgetPosition = new WidgetPosition(widget.Position);
                            newWidgetPosition.Column += 1;
                            ChangeWidgetPosition(widget, newWidgetPosition);
                        }
                        if (cellPosChangeArgs.MessageType == CellPosChangeMsgType.POS_DELETE)
                        {
                            DeleteWidget(widget);
                        }
                        if (cellPosChangeArgs.MessageType == CellPosChangeMsgType.POS_EDIT_WIN)
                        {
                            WidgetPositionEditorWindow positionEditor = new WidgetPositionEditorWindow(widget.Position, widget.Dimension);
                            positionEditor.ShowDialog();
                            if (positionEditor.DialogResult == true)
                            {
                                WidgetPosition newWidgetPosition = positionEditor.WidgetPosition;
                                ChangeWidgetPosition(widget, newWidgetPosition);
                                ChangeWidgetDimension(widget, positionEditor.WidgetDimension);
                            }
                        }
                    }
                }

                if (eArgs is CellMessageArgs cellMessageArgs)
                {
                    if (cellMessageArgs != null && widget != null && cellMessageArgs.Message != null)
                    {
                        if (cellMessageArgs.Message == CellMessageArgs.ConfigWindowOpenRequest)
                        {
                            widget.OpenConfigWindow();
                        }
                    }
                }
            }
        }
 public void ChangeWidgetPosition(IWidgetContainer widget, WidgetPosition newPosition)
 {
     Console.WriteLine($"Setting New position to {newPosition.Row}, {newPosition.Column}, {newPosition.RowSpan}, {newPosition.ColSpan}");
     LayoutManager.ChangeWidgetPosition(CellsContainer, widget, newPosition);
 }
        public void ChangeWidgetPosition(Grid container, IWidgetContainer widgetContainer, WidgetPosition newPosition)
        {
            WidgetPosition legitPosition = newPosition.GetLegitPosition();

            EnsureWidgetPositon(container, legitPosition);
            widgetContainer.Position = legitPosition;
            // todo make user opt for this in the future
            RemoveEmptyRowsAndColumns(container);
        }
Пример #14
0
 public Task <Widget> GetByPositionAsync(WidgetPosition position)
 {
     return(collection.Find(a => a.Position == (int)position)
            .FirstOrDefaultAsync());
 }