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); }
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; }
public async Task <WidgetModel> GetByPositionAsync(WidgetPosition position) { return(_mapper.Map <WidgetModel>(await _widgetRepository.GetByPositionAsync(position))); }
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); }
public Task <Widget> GetByPositionAsync(WidgetPosition position) { return(collection.Find(a => a.Position == (int)position) .FirstOrDefaultAsync()); }