/// <summary> /// Setup the Grid settings. /// </summary> /// <param name="settings">The settings.</param> /// <param name="macroRows">The macro rows.</param> /// <param name="macroCols">The macro cols.</param> /// <param name="subRows">The sub rows.</param> /// <param name="subCols">The sub cols.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> /// <param name="width">The width.</param> /// <param name="height">The height.</param> /// <returns></returns> public static GridControl_Settings Setup(GridControl_Settings settings, int macroRows, int macroCols, int subRows, int subCols, int microRows, int microCols, int width = 0, int height = 0) { if (settings == null) { settings = Setup(); } settings.Total_MacroRows = macroRows; settings.Total_MacroCols = macroCols; settings.Total_SubRows = subRows; settings.Total_SubCols = subCols; settings.Total_MicroRows = microRows; settings.Total_MicroCols = microCols; if (width != 0) { settings.Size_MicroWidth = width; } if (height != 0) { settings.Size_MicroHeight = height; } settings.Refresh_Calculations(); return(settings); }
/// <summary>Creates the micro grids.</summary> /// <param name="onGridCreate">The on grid create.</param> /// <param name="onGridRowCreate">The on grid row create.</param> /// <param name="settings">The settings.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> public void CreateMicroGrids(onGrid_CreateItem onGridCreate, onGrid_CreateItem onGridRowCreate, GridControl_Settings settings, int microRows, int microCols) { // Create the child objects // This can be optimised by only creating a child the momemnt it is neaded in Child_GridBlockGet int ii = 0; for (int row1 = 1; row1 <= microRows; row1++) { Name_ChildRow = GridBlock_zMethods.Name_ChildRow(this, row1); onGridRowCreate?.Invoke(this, Child_BlockType); for (int col1 = 1; col1 <= microCols; col1++) { if (GetChild_GridBlock($"{row1}_{col1}", enGrid_BlockDisplayType.Address, false) == null) { // The childblock does not exists ii++; var grid = new GridBlock_1Micro(this, onGridCreate, settings, ii, col1, row1); _GridBlocksDictionary.Add(grid.Name_Address, grid); } } } Child_Count = microRows * microCols; }
/// <summary> /// Initializes a new instance of the <see cref="GridControl_Settings"/> class. /// </summary> public static GridControl_Settings Setup() { var result = new GridControl_Settings(); result.Refresh_Calculations(); return(result); }
/// <summary>Initializes a new instance of the <see cref="GridBlock_4Cuboid" /> class.</summary> /// <param name="parent">The parent.</param> /// <param name="onGridCreate">The on grid create.</param> /// <param name="onGridRowCreate">The on grid row create.</param> /// <param name="settings">The settings.</param> /// <param name="macroRows">The macro rows.</param> /// <param name="macroCols">The child rows.</param> /// <param name="subRows">The sub rows.</param> /// <param name="subCols">The sub cols.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> public GridBlock_4Cuboid(IGridBlock_Base parent, onGrid_CreateItem onGridCreate, onGrid_CreateItem onGridRowCreate, GridControl_Settings settings, int macroRows = 1, int macroCols = 1, int subRows = 5, int subCols = 5, int microRows = 5, int microCols = 5) : base(parent, 1, 1, settings) { Child_BlockType = enGrid_BlockType.MacroBlock; Child_DisplayType = enGrid_BlockDisplayType.Address; Child_Cols = macroCols; Child_Rows = macroRows; onGridCreate?.Invoke(this, enGrid_BlockType.CuboidGrid); // Create the child objects int ii = 0; for (int row1 = 1; row1 <= macroRows; row1++) { Name_ChildRow = GridBlock_zMethods.Name_ChildRow(this, row1); onGridRowCreate?.Invoke(this, Child_BlockType); for (int col = 1; col <= macroCols; col++) { ii++; var grid = new GridBlock_3Macro(this, onGridCreate, onGridRowCreate, settings, ii, row1, col, subRows, subCols, microRows, microCols); _GridBlocksDictionary.Add(grid.Name_Address, grid); } } Child_Count = macroRows * macroCols * subRows * subCols * microRows * microCols; }
/// <summary>Creates the sub grids.</summary> /// <param name="onGridCreate">The on grid create.</param> /// <param name="onGridRowCreate">The on grid row create.</param> /// <param name="settings">The settings.</param> /// <param name="subRows">The sub rows.</param> /// <param name="subCols">The sub cols.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> public void CreateSubGrids(onGrid_CreateItem onGridCreate, onGrid_CreateItem onGridRowCreate, GridControl_Settings settings, int subRows, int subCols, int microRows, int microCols) { GridBlock_2Sub gridSub = null; int ii = 0; for (int row1 = 1; row1 <= subRows; row1++) { Name_ChildRow = GridBlock_zMethods.Name_ChildRow(this, row1); onGridRowCreate?.Invoke(this, Child_BlockType); for (int col1 = 1; col1 <= subCols; col1++) { if (GetChild_GridBlock($"{row1}_{col1}", enGrid_BlockDisplayType.Address, false) == null) { // The childblock does not exists ii++; gridSub = new GridBlock_2Sub(this, onGridCreate, onGridRowCreate, settings, ii, row1, col1, microRows, microCols); _GridBlocksDictionary.Add(gridSub.Name_Address, gridSub); } } } Child_Count = subRows * subCols * microCols * microRows; }
/// <summary>Initializes a new instance of the <see cref="GridBlock_5Setup" /> class.</summary> /// <param name="onCreateGrid">The on create grid.</param> /// <param name="settings">The settings.</param> /// <param name="rowName">Name of the row.</param> public GridBlock_5Setup(onGrid_CreateControl onCreateGrid, GridControl_Settings settings, string rowName = "R1") { if (onCreateGrid != null) { _onCreateGridControl -= onCreateGrid; _onCreateGridControl += onCreateGrid; } _treeControls.Clear(); var root = new object() as IGridBlock_Base; IGridControl gridRowControl = new object() as IGridControl; // Client need to create this if (_onCreateGridControl != null) { _onCreateGridControl(root, enGrid_ControlType.Row, "?", rowName, enGrid_BlockType.CuboidGrid, ref gridRowControl); // Ask frontend to create the control // Save testing information _treeDebugInfo.Add(GridControl_2Str(enGrid_ControlType.Row, "?", rowName, enGrid_BlockType.CuboidGrid), null); } _treeControls.Add(rowName, gridRowControl); GridCuboid = new GridBlock_4Cuboid(root, OnGridCreate, OnGridRowCreate, settings, settings.Total_MacroRows, settings.Total_MacroCols, settings.Total_SubRows, settings.Total_SubCols, settings.Total_MicroRows, settings.Total_MicroCols); //r1 //r1/cub1_1 //r1/cub1_1/r1 //r1/cub1_1/r1/mac1_1 //r1/cub1_1/r1/mac1_1/r1 //r1/cub1_1/r1/mac1_1/r1/sub1_1 //r1/cub1_1/r1/mac1_1/r1/sub1_1/r1 //r1/cub1_1/r1/mac1_1/r1/sub1_1/r1/mic1_1 }
public static string GridPrefix(IGridBlock_Base grid, GridControl_Settings settings) { if (grid == null) { throw new ArgumentNullException(nameof(grid)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } string prefix = ""; if (grid is GridBlock_1Micro) { prefix = settings.GridBlock_Name1Micro; } else if (grid is GridBlock_2Sub) { prefix = settings.GridBlock_Name2Sub; } else if (grid is GridBlock_3Macro) { prefix = settings.GridBlock_Name3Macro; } else if (grid is GridBlock_4Cuboid) { prefix = settings.GridBlock_Name4Cuboid; } else { throw new ArgumentException($"Error! '{nameof(grid)}' is not a defined type."); } return(prefix); }
/// <summary>Calculates the grid frontend name.</summary> /// <param name="grid">The grid.</param> /// <param name="col">The col.</param> /// <param name="row">The row.</param> /// <param name="settings">The settings.</param> /// <returns></returns> public static string Name_Frontend(IGridBlock_Base grid, int col, int row, GridControl_Settings settings) { var parentRow = grid.Name_ParentRow; // + "/"; string prefix = GridPrefix(grid, settings); return(parentRow + prefix + $"{row}_{col}"); }
/// <summary>Setups the sub grids.</summary> /// <param name="macroAddress">The macro address.</param> /// <param name="subAddress">The sub address.</param> /// <param name="settings">The settings.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> /// <exception cref="System.InvalidOperationException">Error! Macro grid was not found.</exception> /// <exception cref="InvalidOperationException">Error! Macro grid was not found.</exception> public void Setup_MicroGrids(string macroAddress, string subAddress, GridControl_Settings settings, int microRows, int microCols) { IGridBlock_Base grid = GetChild_SubGridBlock(macroAddress, subAddress); var gridMicro = grid as GridBlock_2Sub; if (gridMicro == null) { throw new InvalidOperationException("Error! Macro grid was not found."); } gridMicro.CreateMicroGrids(OnGridCreate, OnGridRowCreate, settings, microRows, microCols); }
/// <summary>Initializes a new instance of the <see cref="GridBlock_1Micro" /> class.</summary> /// <param name="parent">The parent.</param> /// <param name="onGridCreate">The on grid create.</param> /// <param name="onGridRowCreate">The on grid row create.</param> /// <param name="settings">The settings.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <param name="col">The col.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> public GridBlock_2Sub(IGridBlock_Base parent, onGrid_CreateItem onGridCreate, onGrid_CreateItem onGridRowCreate, GridControl_Settings settings, int index, int row, int col, int microRows = 5, int microCols = 5) : base(parent, index, row, col, settings) { Child_BlockType = enGrid_BlockType.MicroBlock; Child_DisplayType = enGrid_BlockDisplayType.Address; Child_Cols = microCols; Child_Rows = microRows; Child_Count = 0; onGridCreate?.Invoke(this, enGrid_BlockType.SubBlock); CreateMicroGrids(onGridCreate, onGridRowCreate, settings, microRows, microCols); }
/// <summary>Initializes a new instance of the <see cref="GridBlock_1Micro" /> class.</summary> /// <param name="parent">The parent.</param> /// <param name="onGridCreate">The on grid create.</param> /// <param name="onGridRowCreate">The on grid row create.</param> /// <param name="settings">The settings.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <param name="col">The col.</param> /// <param name="subRows">The sub rows.</param> /// <param name="subCols">The sub cols.</param> /// <param name="microRows">The micro rows.</param> /// <param name="microCols">The micro cols.</param> public GridBlock_3Macro(IGridBlock_Base parent, onGrid_CreateItem onGridCreate, onGrid_CreateItem onGridRowCreate, GridControl_Settings settings, int index, int row, int col, int subRows = 5, int subCols = 5, int microRows = 5, int microCols = 5) : base(parent, index, row, col, settings) { Child_BlockType = enGrid_BlockType.SubBlock; Child_DisplayType = enGrid_BlockDisplayType.Address; Child_Cols = subCols; Child_Rows = subRows; onGridCreate?.Invoke(this, enGrid_BlockType.MacroBlock); // Create the child objects CreateSubGrids(onGridCreate, onGridRowCreate, settings, subRows, subCols, microRows, microCols); }
/// <summary>Creates the new child grids.</summary> /// <param name="grid">The grid.</param> /// <param name="settings">The settings.</param> /// <param name="rows">The rows.</param> /// <param name="cols">The cols.</param> public void CreateNewChildGrids(IGridControl grid, GridControl_Settings settings, int rows, int cols) { var gridState = grid.GridState; var gridMacro = gridState as GridBlock_3Macro; if (gridMacro != null) { gridMacro.CreateSubGrids(OnGridCreate, OnGridRowCreate, settings, rows, cols, 0, 0); } var gridsub = gridState as GridBlock_2Sub; if (gridsub != null) { gridsub.CreateMicroGrids(OnGridCreate, OnGridRowCreate, settings, rows, cols); } }
/// <summary>Initializes a new instance of the <see cref="GridBlock_1Micro" /> class.</summary> /// <param name="parent">The parent.</param> /// <param name="onGridCreate">The on grid create.</param> /// <param name="settings">The settings.</param> /// <param name="index">The index.</param> /// <param name="col">The col.</param> /// <param name="row">The row.</param> public GridBlock_1Micro(IGridBlock_Base parent, onGrid_CreateItem onGridCreate, GridControl_Settings settings, int index, int col, int row) : base(parent, index, row, col, settings) { onGridCreate?.Invoke(this, enGrid_BlockType.MicroBlock); }
/// <summary>Initializes a new instance of the <see cref="GridBlock_1Micro" /> class.</summary> /// <param name="parent">The parent.</param> /// <param name="index">The index.</param> /// <param name="row">The row.</param> /// <param name="col">The col.</param> /// <param name="settings">The settings.</param> public GridBlock_0BaseState(IGridBlock_Base parent, int index, int row, int col, GridControl_Settings settings) : base(parent, row, col, settings) { State_Index = index; State_Col = col; State_Row = row; State_Setup(Double.NaN, 0, Color.Black); State_EditState = enGrid_BlockEditState.Undefined; }