public StationRowHeaderView() { DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader(); backHeader.BackColor = Color.FromArgb(248, 248, 248); backHeader.BackgroundColorStyle = DevAge.Drawing.BackgroundColorStyle.Solid; this.Background = backHeader; this.ForeColor = Color.Black; this.Font = new Font("微软雅黑", 9); this.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; }
public virtual void UpdateGrid() { try { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // caption header SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** SourceGrid.Cells.RowHeader rowHeader; int iRow = -1; // loading caption gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(GridCaption) { ColumnSpan = 2, View = captionHeader }; gridSolutions[iRow, 0] = rowHeader; } catch (Exception ex) { _log.Error(ex.ToString()); } }
public override void FillGrid() { // clear grid gridSolutions.Rows.Clear(); // border gridSolutions.BorderStyle = BorderStyle.FixedSingle; gridSolutions.ColumnsCount = 2; gridSolutions.FixedColumns = 1; // header SourceGrid.Cells.RowHeader rowHeader; SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", 10, FontStyle.Regular); int iRow = -1; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Layer #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Interlayer #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Case #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; }
private void FillGrid() { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** // set first row gridSolutions.BorderStyle = BorderStyle.FixedSingle; gridSolutions.ColumnsCount = 5; gridSolutions.FixedRows = 1; gridSolutions.Rows.Insert(0); // header int iCol = 0; SourceGrid.Cells.ColumnHeader columnHeader; // name columnHeader = new SourceGrid.Cells.ColumnHeader(Resources.ID_CASENAME) { AutomaticSortEnabled = false, View = viewColumnHeader }; gridSolutions[0, iCol++] = columnHeader; // dimensions columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Resources.ID_DIMENSIONS, UnitsManager.LengthUnitString)) { AutomaticSortEnabled = false, View = viewColumnHeader }; gridSolutions[0, iCol++] = columnHeader; // #items columnHeader = new SourceGrid.Cells.ColumnHeader("#") { AutomaticSortEnabled = false, View = viewColumnHeader }; gridSolutions[0, iCol++] = columnHeader; // efficiency columnHeader = new SourceGrid.Cells.ColumnHeader(Resources.ID_EFFICIENCYPERCENTAGE) { AutomaticSortEnabled = false, View = viewColumnHeader }; gridSolutions[0, iCol++] = columnHeader; // weight columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Resources.ID_WEIGHT_WU, UnitsManager.MassUnitString)) { AutomaticSortEnabled = false, View = viewColumnHeader }; gridSolutions[0, iCol++] = columnHeader; int iRow = 0; foreach (AnalysisHomo analysis in Analyses) { AnalysisBoxCase analysisBoxCase = analysis as AnalysisBoxCase; BoxProperties caseProperties = analysisBoxCase.CaseProperties; gridSolutions.Rows.Insert(++iRow); iCol = 0; gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(analysis.Container.ID.Name); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0} x {1} x {2} / {3} x {4} x {5}", caseProperties.Length, caseProperties.Width, caseProperties.Height, caseProperties.InsideLength, caseProperties.InsideWidth, caseProperties.InsideHeight)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(analysis.Solution.ItemCount); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format(CultureInfo.InvariantCulture, "{0:0.#}", analysis.Solution.VolumeEfficiency)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format(CultureInfo.InvariantCulture, "{0:0.#}", analysis.Solution.Weight)); } gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); // select first solution if (gridSolutions.RowsCount > 1) { gridSolutions.Selection.SelectRow(1, true); } else { // grid empty -> clear drawing graphCtrl.Invalidate(); } }
private void InitializeGrid() { // border DevAge.Drawing.BorderLine border = new DevAge.Drawing.BorderLine(Color.DarkBlue, 1); DevAge.Drawing.RectangleBorder cellBorder = new DevAge.Drawing.RectangleBorder(border, border); // views CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); viewNormal.Border = cellBorder; CheckboxBackColorAlternate viewNormalCheck = new CheckboxBackColorAlternate(Color.LightBlue, Color.White); viewNormalCheck.Border = cellBorder; // column header view SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // row header view SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backRowHeader = new DevAge.Drawing.VisualElements.RowHeader(); backRowHeader.BackColor = Color.LightGray; backRowHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewRowHeader.Background = backRowHeader; viewRowHeader.ForeColor = Color.Black; // create the grid gridDynamicBCT.BorderStyle = BorderStyle.FixedSingle; gridDynamicBCT.ColumnsCount = McKeeFormula.HumidityCoefDictionary.Count + 1; gridDynamicBCT.RowsCount = McKeeFormula.StockCoefDictionary.Count + 1; // column header SourceGrid.Cells.ColumnHeader columnHeader; int indexCol = 0; columnHeader = new SourceGrid.Cells.ColumnHeader("Humidity (%)/Storage"); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridDynamicBCT[0, indexCol++] = columnHeader; foreach (string key in McKeeFormula.HumidityCoefDictionary.Keys) { columnHeader = new SourceGrid.Cells.ColumnHeader(key); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridDynamicBCT[0, indexCol++] = columnHeader; } SourceGrid.Cells.RowHeader rowHeader; int indexRow = 1; foreach (string key in McKeeFormula.StockCoefDictionary.Keys) { rowHeader = new SourceGrid.Cells.RowHeader(key); rowHeader.View = viewRowHeader; gridDynamicBCT[indexRow++, 0] = rowHeader; } gridDynamicBCT.AutoStretchColumnsToFitWidth = true; gridDynamicBCT.AutoSizeCells(); gridDynamicBCT.Columns.StretchToFit(); }
private void FillGrid() { try { // clear grid gridProfile.Rows.Clear(); // border gridProfile.BorderStyle = BorderStyle.FixedSingle; gridProfile.SelectionMode = GridSelectionMode.Row; gridProfile.ColumnsCount = 3; // *** IViews // caption header DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader { Background = veHeaderCaption, ForeColor = Color.Black, Font = new Font("Arial", GridFontSize + 2, FontStyle.Bold), TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter }; // viewRowHeader DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader { Background = backHeader, ForeColor = Color.Black, Font = new Font("Arial", GridFontSize, FontStyle.Regular) }; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** int iRow = -1; // ### sol items : begin gridProfile.Rows.Insert(++iRow); gridProfile[iRow, 1] = new SourceGrid.Cells.RowHeader($"{Resources.ID_HEIGHT} ({UnitsManager.LengthUnitString})") { View = captionHeader }; gridProfile[iRow, 2] = new SourceGrid.Cells.RowHeader($"{Resources.ID_DIAMETER} ({UnitsManager.LengthUnitString})") { View = captionHeader }; decimal inc = 0.0m; int noDecimalPlaces = 0; switch (UnitsManager.CurrentUnitSystem) { case UnitsManager.UnitSystem.UNIT_METRIC1: inc = 1.0m; noDecimalPlaces = 0; break; case UnitsManager.UnitSystem.UNIT_METRIC2: inc = 0.1m; noDecimalPlaces = 1; break; case UnitsManager.UnitSystem.UNIT_IMPERIAL: case UnitsManager.UnitSystem.UNIT_US: inc = 1.0m / 16.0m; noDecimalPlaces = 2; break; default: break; } foreach (var item in Profile) { gridProfile.Rows.Insert(++iRow); gridProfile[iRow, 0] = new SourceGrid.Cells.Cell() { Value = $"{iRow}" }; for (int j = 0; j < 2; ++j) { decimal dValue = (decimal)item[j]; var usedControl = new NumericUpDown() { Minimum = 0.0m, Maximum = 1000.0m, Increment = inc, DecimalPlaces = noDecimalPlaces, Value = dValue }; usedControl.Enter += delegate(object sender, EventArgs e) { IsRechangingSelection = true; foreach (RowInfo rowInfo in gridProfile.Rows) { gridProfile.Selection.SelectRow(rowInfo.Index, false); } foreach (LinkedControlValue lcv in gridProfile.LinkedControls) { if (lcv.Control == usedControl) { gridProfile.Selection.SelectRow(lcv.Position.Row, true); break; } } IsRechangingSelection = false; }; usedControl.ValueChanged += delegate(object sender, EventArgs e) { foreach (LinkedControlValue lcv in gridProfile.LinkedControls) { if (lcv.Control == usedControl && lcv.Control is NumericUpDown nud) { Vector2D v = Profile[lcv.Position.Row - 1]; if (lcv.Position.Column == 1) { Profile[lcv.Position.Row - 1] = new Vector2D((double)nud.Value, v.Y); } else if (lcv.Position.Column == 2) { Profile[lcv.Position.Row - 1] = new Vector2D(v.X, (double)nud.Value); } OnInputChanged(sender, e); } } }; gridProfile[iRow, j + 1] = new SourceGrid.Cells.Cell(); gridProfile.LinkedControls.Add(new LinkedControlValue(usedControl, new SourceGrid.Position(iRow, j + 1))); } } gridProfile.VScrollBar.ValueChanged += delegate(object sender, EventArgs valueChangedEventArgs) { // Hide all linked controls above 'new value' // Show all linked controls beyond 'new value' foreach (LinkedControlValue lcv in gridProfile.LinkedControls) { lcv.Control.Visible = lcv.Position.Row > gridProfile.VScrollBar.Value; } // Reselecting works more or less when scrolling down. But what when scrolling up? if (gridProfile.Selection.ActivePosition.Row <= gridProfile.VScrollBar.Value) { IsRechangingSelection = false; foreach (LinkedControlValue lcv in gridProfile.LinkedControls) { gridProfile.Selection.SelectRow(lcv.Position.Row, false); } IsRechangingSelection = true; gridProfile.Selection.SelectRow(gridProfile.VScrollBar.Value + 1, true); } }; gridProfile.Selection.SelectionChanged += delegate(object sender, RangeRegionChangedEventArgs e) { if (!IsRechangingSelection && e.AddedRange != null && e.RemovedRange == null) { bool isFound = false; int selectedRow = -1; int selectedCol = -1; int[] selectedRows = e.AddedRange.GetRowsIndex(); if (sender is SourceGrid.Selection.SelectionBase) { selectedRow = (sender as SourceGrid.Selection.SelectionBase).ActivePosition.Row; selectedCol = (sender as SourceGrid.Selection.SelectionBase).ActivePosition.Column; } if (selectedRows[0] != -1) { selectedRow = selectedRows[0]; } foreach (LinkedControlValue lcv in gridProfile.LinkedControls) { if (lcv.Position.Row == selectedRow) { // Remove focus from control isFound = true; lcv.Control.Focus(); break; } } if (!isFound) { IsRechangingSelection = true; gridProfile.Selection.Focus(new SourceGrid.Position(selectedRow, selectedCol), true); IsRechangingSelection = false; } } }; gridProfile.AutoSizeCells(); gridProfile.AutoStretchColumnsToFitWidth = true; gridProfile.Invalidate(); } catch (Exception ex) { _log.Error(ex.ToString()); } }
private void FillGrid() { try { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** // set first row gridSolutions.BorderStyle = BorderStyle.FixedSingle; gridSolutions.ColumnsCount = 7; gridSolutions.FixedRows = 1; gridSolutions.Rows.Insert(0); // header int iCol = 0, iRow = -1; gridSolutions.Rows.Insert(++iRow); // layer pattern gridSolutions[0, iCol++] = new SourceGrid.Cells.ColumnHeader(Resources.ID_LAYERPATTERN) { AutomaticSortEnabled = false, View = viewColumnHeader }; // case count gridSolutions[0, iCol++] = new SourceGrid.Cells.ColumnHeader(Resources.ID_CASECOUNT) { AutomaticSortEnabled = false, View = viewColumnHeader }; // efficiency gridSolutions[0, iCol++] = new SourceGrid.Cells.ColumnHeader(Resources.ID_EFFICIENCYPERCENTAGE) { AutomaticSortEnabled = false, View = viewColumnHeader }; // pallet weight gridSolutions[0, iCol++] = new SourceGrid.Cells.ColumnHeader(string.Format(Resources.ID_PALLETWEIGHT, UnitsManager.MassUnitString)) { AutomaticSortEnabled = false, View = viewColumnHeader }; // pallet height gridSolutions[0, iCol++] = new SourceGrid.Cells.ColumnHeader(string.Format(Resources.ID_PALLETHEIGHT, UnitsManager.LengthUnitString)) { AutomaticSortEnabled = false, View = viewColumnHeader }; gridSolutions.AutoStretchRowsToFitHeight = true; SourceGrid.Cells.Controllers.ToolTipText toolTipController = new SourceGrid.Cells.Controllers.ToolTipText { ToolTipTitle = "", ToolTipIcon = ToolTipIcon.None, IsBalloon = false }; foreach (Layer2D layer in _layers) { gridSolutions.Rows.Insert(++iRow); iCol = 0; // layer pattern gridSolutions[iRow, iCol] = new SourceGrid.Cells.Image(TryGenerateLayerImage(layer)) { ToolTipText = layer.Name }; gridSolutions[iRow, iCol++].AddController(toolTipController); using (FastEvaluatorLayer2Pallet evaluator = new FastEvaluatorLayer2Pallet(layer, SelectedPackable, SelectedPallet, BuildConstraintSet())) { // case count gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell( string.Format(Resources.ID_CASECOUNTFORMATSTRING, evaluator.ItemCount, evaluator.NoItemsPerLayer, evaluator.NoLayers)); // volume efficiency gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format(CultureInfo.InvariantCulture, "{0:0.##}", evaluator.VolumeEfficiency)); // pallet weight gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format(CultureInfo.InvariantCulture, "{0:0.#}", evaluator.PalletWeight)); // pallet height gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format(CultureInfo.InvariantCulture, "{0:0.##}", evaluator.PalletHeight)); } } gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); // select first solution if (gridSolutions.RowsCount > 1) { gridSolutions.Selection.SelectRow(1, true); } else { graphCtrl.Invalidate(); } } catch (Exception ex) { _log.Error(ex.Message); } }
public override void UpdateGrid() { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** SourceGrid.Cells.RowHeader rowHeader; int iRow = -1; // case caption gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_CASECOUNT) { ColumnSpan = 2, View = captionHeader }; gridSolutions[iRow, 0] = rowHeader; // layer # gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_LAYERCOUNT) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(_solution.LayerCount); // interlayer # if (_solution.InterlayerCount > 0) { gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_INTERLAYERCOUNT) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(_solution.InterlayerCount); } // *** Item # (recursive count) Packable content = _analysis.Content; int itemCount = _solution.ItemCount; int number = 1; do { itemCount *= number; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("{0} #", content.DetailedName)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // load dimensions BBox3D bboxLoad = _solution.BBoxLoad; // --- gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADDIMENSIONS, UnitsManager.LengthUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#} x {1:0.#} x {2:0.#}", bboxLoad.Length, bboxLoad.Width, bboxLoad.Height)); // net weight if (_solution.HasNetWeight) { rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_NETWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.NetWeight)); } // load weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LoadWeight)); // total weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_TOTALWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.Weight)); // volume efficiency gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_VOLUMEEFFICIENCY) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.VolumeEfficiency)); int noLayerTypesUsed = 0; for (int i = 0; i < _solution.Layers.Count; ++i) { noLayerTypesUsed += _solution.Layers[i].BoxCount > 0 ? 1 : 0; } // ### layers : begin for (int i = 0; i < _solution.NoLayerTypesUsed; ++i) { // layer caption gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(_solution.LayerCaption(i)) { ColumnSpan = 2, View = captionHeader }; gridSolutions[iRow, 0] = rowHeader; // *** Item # (recursive count) content = _analysis.Content; itemCount = _solution.LayerBoxCount(i); number = 1; do { itemCount *= number; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format("{0} #", content.DetailedName)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // layer weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format(Resources.ID_WEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LayerWeight(i))); // layer space gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format(Resources.ID_SPACES_WU, UnitsManager.LengthUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LayerMaximumSpace(i))); } gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.Invalidate(); }
private void InitializeGrid() { // border DevAge.Drawing.BorderLine border = new DevAge.Drawing.BorderLine(Color.DarkBlue, 1); DevAge.Drawing.RectangleBorder cellBorder = new DevAge.Drawing.RectangleBorder(border, border); // views CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); viewNormal.Border = cellBorder; CheckboxBackColorAlternate viewNormalCheck = new CheckboxBackColorAlternate(Color.LightBlue, Color.White); viewNormalCheck.Border = cellBorder; // column header view SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // row header view SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backRowHeader = new DevAge.Drawing.VisualElements.RowHeader(); backRowHeader.BackColor = Color.LightGray; backRowHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewRowHeader.Background = backRowHeader; viewRowHeader.ForeColor = Color.Black; // create the grid gridDynamicBCT.BorderStyle = BorderStyle.FixedSingle; gridDynamicBCT.ColumnsCount = McKeeFormula.HumidityCoefDictionary.Count + 1; gridDynamicBCT.RowsCount = McKeeFormula.StockCoefDictionary.Count + 1; // column header SourceGrid.Cells.ColumnHeader columnHeader; int indexCol = 0; columnHeader = new SourceGrid.Cells.ColumnHeader("Humidity (%)/Storage"); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridDynamicBCT[0, indexCol++] = columnHeader; foreach (string key in McKeeFormula.HumidityCoefDictionary.Keys) { columnHeader = new SourceGrid.Cells.ColumnHeader(key); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridDynamicBCT[0, indexCol++] = columnHeader; } SourceGrid.Cells.RowHeader rowHeader; int indexRow = 1; foreach (string key in McKeeFormula.StockCoefDictionary.Keys) { rowHeader = new SourceGrid.Cells.RowHeader(key); rowHeader.View = viewRowHeader; gridDynamicBCT[indexRow++, 0] = rowHeader; } gridDynamicBCT.AutoStretchColumnsToFitWidth = true; gridDynamicBCT.AutoSizeCells(); gridDynamicBCT.Columns.StretchToFit(); }
private void FillGrid() { // clear grid gridSolutions.Rows.Clear(); // border gridSolutions.BorderStyle = BorderStyle.FixedSingle; gridSolutions.ColumnsCount = 2; gridSolutions.FixedColumns = 1; // header SourceGrid.Cells.RowHeader rowHeader; SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", 10, FontStyle.Regular); int iRow = -1; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Layer #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Interlayer #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Case #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("Outer dimensions\n({0} x {0} x {0})", UnitsManager.LengthUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("Load dimensions\n({0} x {0} x {0})", UnitsManager.LengthUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("Load Weight ({0})", UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("Total weight ({0})", UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Vol. efficiency (%)"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); // select first solution gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.AutoSizeCells(); gridSolutions.Invalidate(); }
private void UpdateGrid() { try { // sanity check if (gridSolution.ColumnsCount < 2) { return; } // remove all existing rows gridSolution.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader(); veHeaderCaption.BackColor = Color.SteelBlue; veHeaderCaption.Border = DevAge.Drawing.RectangleBorder.NoBorder; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** Solution solution = _analysis.Solution; SourceGrid.Cells.RowHeader rowHeader; int iRow = -1; // pallet caption gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_PALLET); rowHeader.ColumnSpan = 2; rowHeader.View = captionHeader; gridSolution[iRow, 0] = rowHeader; // layer # gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_LAYERNUMBER); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell(solution.LayerCount); // interlayer # if (solution.InterlayerCount > 0) { gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_INTERLAYERNUMBER); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell(solution.InterlayerCount); } // *** Item # (Recursive count) Packable content = _analysis.Content; int itemCount = solution.ItemCount; int number = 1; do { itemCount *= number; gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("{0} #", content.DetailedName)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // outer dimensions BBox3D bboxGlobal = solution.BBoxGlobal; // --- gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_OUTERDIMENSIONS, Environment.NewLine, UnitsManager.LengthUnitString)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#} x {1:0.#} x {2:0.#}", bboxGlobal.Length, bboxGlobal.Width, bboxGlobal.Height)); // load dimensions BBox3D bboxLoad = solution.BBoxLoad; // --- gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADDIMENSIONS, Environment.NewLine, UnitsManager.LengthUnitString)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#} x {1:0.#} x {2:0.#}", bboxLoad.Length, bboxLoad.Width, bboxLoad.Height)); // net weight if (solution.HasNetWeight) { gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_NETWEIGHT_WU, UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", solution.NetWeight)); } // load weight gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADWEIGHT_WU, UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", solution.LoadWeight)); // total weight gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_TOTALWEIGHT_WU, UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", solution.Weight)); // volume efficiency gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_VOLUMEEFFICIENCY); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", solution.VolumeEfficiency)); int noLayerTypesUsed = solution.NoLayerTypesUsed; // ### layers : begin for (int i = 0; i < solution.Layers.Count; ++i) { List <int> layerIndexes = solution.LayerTypeUsed(i); if (0 == layerIndexes.Count) { continue; } // layer caption gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(solution.LayerCaption(i)); rowHeader.ColumnSpan = 2; rowHeader.View = captionHeader; gridSolution[iRow, 0] = rowHeader; // *** Item # (recursive count) content = _analysis.Content; itemCount = solution.LayerBoxCount(i); number = 1; do { itemCount *= number; gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format("{0} #", content.DetailedName)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // layer weight gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format(Resources.ID_WEIGHT_WU, UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", solution.LayerWeight(i))); // layer space gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Spaces"); rowHeader.View = viewRowHeader; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", solution.LayerMaximumSpace(i))); } // ### layers : end gridSolution.AutoSizeCells(); gridSolution.Columns.StretchToFit(); gridSolution.AutoStretchColumnsToFitWidth = true; gridSolution.Invalidate(); } catch (Exception ex) { _log.Error(ex.ToString()); } }
public virtual void UpdateGrid() { try { // sanity check if (gridSolutions.ColumnsCount < 2) { return; } // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // caption header DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader { Background = veHeaderCaption, ForeColor = Color.Black, Font = new Font("Arial", GridFontSize + 2, FontStyle.Bold), TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter }; SourceGrid.Cells.Views.RowHeader captionHeader2 = new SourceGrid.Cells.Views.RowHeader { Background = veHeaderCaption, ForeColor = Color.Black, Font = new Font("Arial", GridFontSize, FontStyle.Regular), TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter }; // viewRowHeader DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader { Background = backHeader, ForeColor = Color.Black, Font = new Font("Arial", GridFontSize, FontStyle.Regular) }; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** int iRow = -1; // ### sol items : begin int solItemIndex = 0; foreach (var solItem in Solution.SolItems) { gridSolutions.Rows.Insert(++iRow); var rowHeader = new SourceGrid.Cells.RowHeader(string.Format(Resources.ID_PALLET_NUMBER, solItemIndex)) { ColumnSpan = 2, View = captionHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_ITEMS) { ColumnSpan = 2, View = captionHeader2 }; gridSolutions[iRow, 0] = rowHeader; var dictNameCount = solItem.SolutionItems; foreach (int containedItemIndex in dictNameCount.Keys) { // name string name = string.Empty; if (Analysis.ContentTypeByIndex(containedItemIndex) is Packable packable) { name = packable.Name; } // count int count = dictNameCount[containedItemIndex]; if (count > 0) { gridSolutions.Rows.Insert(++iRow); var itemHeader = new SourceGrid.Cells.RowHeader(name) { View = viewRowHeader }; gridSolutions[iRow, 0] = itemHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell($"{count}"); } } // pallet data header gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_PALLETDATA) { ColumnSpan = 2, View = captionHeader2 }; gridSolutions[iRow, 0] = rowHeader; // *** // outer dimensions BBox3D bboxGlobal = Solution.BBoxGlobal(solItemIndex); // --- gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_OUTERDIMENSIONS, UnitsManager.LengthUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture , "{0:0.#} x {1:0.#} x {2:0.#}" , bboxGlobal.Length, bboxGlobal.Width, bboxGlobal.Height)); // load dimensions BBox3D bboxLoad = Solution.BBoxLoad(solItemIndex); gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADDIMENSIONS, UnitsManager.LengthUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture , "{0:0.#} x {1:0.#} x {2:0.#}" , bboxLoad.Length, bboxLoad.Width, bboxLoad.Height)); // *** // *** // load weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", Solution.LoadWeight(solItemIndex))); // total weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_PALLETWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture , "{0:0.#}" , Solution.Weight(solItemIndex))); // *** // increment sol item index ++solItemIndex; } // ### sol items : end gridSolutions.AutoSizeCells(); gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.Invalidate(); } catch (Exception ex) { _log.Error(ex.ToString()); } }
private void GridInitialize(SourceGrid.Grid grid, List <string> captions) { // remove all existing rows grid.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", 10, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewColumnHeader SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.Font = new Font("Arial", 10, FontStyle.Regular); viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** // set first row grid.BorderStyle = BorderStyle.FixedSingle; grid.ColumnsCount = 4 + captions.Count; grid.FixedRows = 1; grid.Rows.Insert(0); // header int iCol = 0; SourceGrid.Cells.ColumnHeader columnHeader; // name columnHeader = new SourceGrid.Cells.ColumnHeader(Properties.Resources.ID_NAME) { AutomaticSortEnabled = false, View = viewColumnHeader }; grid[0, iCol++] = columnHeader; // description columnHeader = new SourceGrid.Cells.ColumnHeader(Properties.Resources.ID_DESCRIPTION) { AutomaticSortEnabled = false, View = viewColumnHeader }; grid[0, iCol++] = columnHeader; // listed captions foreach (string s in captions) { columnHeader = new SourceGrid.Cells.ColumnHeader(s) { AutomaticSortEnabled = false, View = viewColumnHeader }; grid[0, iCol++] = columnHeader; } // delete columnHeader = new SourceGrid.Cells.ColumnHeader(Properties.Resources.ID_DELETE) { AutomaticSortEnabled = false, View = viewColumnHeader }; grid[0, iCol++] = columnHeader; }
private void InitializeGrid() { if (m_IsInitialized) { return; } // 設定 grid 預設的欄寬與列高 brGrid.DefaultWidth = 30; brGrid.DefaultHeight = 20; // 設定 grid 列數與行數。 int maxCol = m_BrDoc.CellsPerLine; // brDoc.LongestLine.Words.Count; brGrid.Redim(m_BrDoc.Lines.Count * 3 + FixedRows, maxCol + FixedColumns); // 設定欄寬最小限制,以免呼叫 AutoSizeView 時,欄寬被縮得太小。 for (int i = 1; i < brGrid.ColumnsCount; i++) { brGrid.Columns[i].MinimalWidth = 24; } brGrid.Columns[0].MinimalWidth = 40; // 第 0 欄要顯示列號,需要寬些. // 標題欄 if (m_HeaderView == null) { m_HeaderView = new SourceGrid.Cells.Views.Header(); m_HeaderView.Font = new Font(brGrid.Font, FontStyle.Regular); } if (m_HeaderView2 == null) { m_HeaderView2 = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader(); backHeader.BackColor = Color.Blue; m_HeaderView2.Background = backHeader; m_HeaderView2.Font = m_HeaderView.Font; } CreateFixedArea(); // Font objects if (m_PhonFont == null) { m_PhonFont = new Font("PMingLiU", DualEditForm.DefaultPhoneticFontSize, FontStyle.Regular, GraphicsUnit.Point, 1); } if (m_MingFont == null) { m_MingFont = new Font("Arial Unicode MS", DualEditForm.DefaultTextFontSize, FontStyle.Regular, GraphicsUnit.Point, 0); // Note: 原本為新細明體,可是為了顯示英文音標等特殊符號,必須使用 Arial Unicode MS 字型。 } if (m_MingFontCJK == null) { m_MingFontCJK = new Font("PMingLiU", DualEditForm.DefaultTextFontSize, FontStyle.Regular, GraphicsUnit.Point, 1); } // view for 點字 if (m_BrView == null) { m_BrView = new SourceGrid.Cells.Views.Cell(); m_BrView.BackColor = Color.Snow; m_BrView.Font = new Font("SimBraille", DualEditForm.DefaultBrailleFontSize); m_BrView.TrimmingMode = SourceGrid.TrimmingMode.None; } // view for 明眼字 if (m_MingView == null) { m_MingView = new SourceGrid.Cells.Views.Cell(); m_MingView.BackColor = Color.Snow; m_MingView.Font = m_MingFont; m_MingView.ElementText.Font = m_MingFont; } if (m_MingViewCJK == null) { m_MingViewCJK = new SourceGrid.Cells.Views.Cell(); m_MingViewCJK.BackColor = Color.Snow; m_MingViewCJK.Font = m_MingFontCJK; m_MingViewCJK.ElementText.Font = m_MingFontCJK; } // view for 注音符號 if (m_PhonView == null) { m_PhonView = new SourceGrid.Cells.Views.Cell(); m_PhonView.BackColor = Color.YellowGreen; m_PhonView.Font = m_PhonFont; m_PhonView.TrimmingMode = SourceGrid.TrimmingMode.None; } // view for 破音字的注音符號 if (m_PhonView2 == null) { m_PhonView2 = new SourceGrid.Cells.Views.Cell(); m_PhonView2.BackColor = Color.Yellow; m_PhonView2.Font = m_PhonFont; m_PhonView2.TrimmingMode = SourceGrid.TrimmingMode.None; } // view for 容易判斷錯誤的破音字注音符號 if (m_PhonView3 == null) { m_PhonView3 = new SourceGrid.Cells.Views.Cell(); m_PhonView3.BackColor = Color.Red; m_PhonView3.Font = m_PhonFont; m_PhonView3.TrimmingMode = SourceGrid.TrimmingMode.None; } // 設置 controllers if (m_MenuController == null) { m_MenuController = new PopupMenuController(); m_MenuController.PopupMenuClick += new SourceGrid.CellContextEventHandler(GridMenu_Click); } if (m_ClickController == null) { m_ClickController = new CellClickEvent(this); } m_IsInitialized = true; }
private void UpdateGrid() { try { // sanity check if (gridSolution.ColumnsCount < 2) { return; } // remove all existing rows gridSolution.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.SteelBlue, Border = DevAge.Drawing.RectangleBorder.NoBorder }; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader() { BackColor = Color.LightGray, Border = DevAge.Drawing.RectangleBorder.NoBorder }; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** SourceGrid.Cells.RowHeader rowHeader; int iRow = -1; // pallet caption gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Truck") { ColumnSpan = 2, View = captionHeader }; gridSolution[iRow, 0] = rowHeader; // layer # gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Layer #") { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell(_solution.LayerCount); // *** Item # (Recursive count) Packable content = _analysis.Content; int itemCount = _solution.ItemCount; int number = 1; do { itemCount *= number; gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("{0} #", content.DetailedName)) { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // load dimensions BBox3D bboxLoad = _solution.BBoxLoad; // --- gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADDIMENSIONS, UnitsManager.LengthUnitString)) { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#} x {1:0.#} x {2:0.#}", bboxLoad.Length, bboxLoad.Width, bboxLoad.Height)); // net weight if (_solution.HasNetWeight) { gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_NETWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.NetWeight)); } // load weight gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_LOADWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LoadWeight)); // total weight gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format(Resources.ID_TOTALWEIGHT_WU, UnitsManager.MassUnitString)) { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.Weight)); // volume efficiency gridSolution.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(Resources.ID_VOLUMEEFFICIENCY) { View = viewRowHeader }; gridSolution[iRow, 0] = rowHeader; gridSolution[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.VolumeEfficiency)); // ### layers : begin for (int i = 0; i < _solution.Layers.Count; ++i) { } // ### layers : end gridSolution.AutoSizeCells(); gridSolution.Columns.StretchToFit(); gridSolution.AutoStretchColumnsToFitWidth = true; gridSolution.Invalidate(); } catch (Exception ex) { _log.Error(ex.ToString()); } }
private void FillGrid() { try { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader(); veHeaderCaption.BackColor = Color.SteelBlue; veHeaderCaption.Border = DevAge.Drawing.RectangleBorder.NoBorder; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", GridFontSize, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.ColumnHeader viewColumnHeader = new SourceGrid.Cells.Views.ColumnHeader(); DevAge.Drawing.VisualElements.ColumnHeader backHeader = new DevAge.Drawing.VisualElements.ColumnHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewColumnHeader.Background = backHeader; viewColumnHeader.ForeColor = Color.Black; viewColumnHeader.Font = new Font("Arial", GridFontSize, FontStyle.Regular); viewColumnHeader.ElementSort.SortStyle = DevAge.Drawing.HeaderSortStyle.None; // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** // set first row gridSolutions.BorderStyle = BorderStyle.FixedSingle; gridSolutions.ColumnsCount = 7; gridSolutions.FixedRows = 1; gridSolutions.Rows.Insert(0); // header int iCol = 0; SourceGrid.Cells.ColumnHeader columnHeader; // A1xA2xA3 columnHeader = new SourceGrid.Cells.ColumnHeader("A1 x A2 x A3"); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // dimensions columnHeader = new SourceGrid.Cells.ColumnHeader( string.Format(Properties.Resources.ID_DIMENSIONS, UnitsManager.LengthUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // weight columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Properties.Resources.ID_WEIGHT_WU, UnitsManager.MassUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // #packs columnHeader = new SourceGrid.Cells.ColumnHeader("#"); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // weight columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Properties.Resources.ID_PALLETWEIGHT, UnitsManager.MassUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // efficiency columnHeader = new SourceGrid.Cells.ColumnHeader(Properties.Resources.ID_EFFICIENCYPERCENTAGE); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; // maximum space columnHeader = new SourceGrid.Cells.ColumnHeader(string.Format(Properties.Resources.ID_MAXIMUMSPACE, UnitsManager.LengthUnitString)); columnHeader.AutomaticSortEnabled = false; columnHeader.View = viewColumnHeader; gridSolutions[0, iCol++] = columnHeader; int iRow = 0; foreach (AnalysisHomo analysis in _analyses) { AnalysisCasePallet analysisCasePallet = analysis as AnalysisCasePallet; PackProperties pack = analysisCasePallet.Content as PackProperties; int layerCount = analysisCasePallet.Solution.Layers.Count; if (layerCount < 1) { continue; } int packPerLayerCount = analysisCasePallet.Solution.Layers[0].BoxCount; int itemCount = analysisCasePallet.Solution.ItemCount; double palletWeight = analysisCasePallet.Solution.Weight; double volumeEfficiency = analysisCasePallet.Solution.VolumeEfficiency; double maximumSpace = analysisCasePallet.Solution.LayerCount > 0 ? analysisCasePallet.Solution.LayerMaximumSpace(0) : 0; gridSolutions.Rows.Insert(++iRow); iCol = 0; gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0} x {1} x {2}", pack.Arrangement.Length, pack.Arrangement.Width, pack.Arrangement.Height)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.#} x {1:0.#} x {2:0.#}", pack.OuterDimensions.X, pack.OuterDimensions.Y, pack.OuterDimensions.Z)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.###}", pack.Weight)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0} = {1} x {2}", itemCount, packPerLayerCount, layerCount)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.###}", palletWeight)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.#}", volumeEfficiency)); gridSolutions[iRow, iCol++] = new SourceGrid.Cells.Cell(string.Format("{0:0.#}", maximumSpace)); } gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); // select first solution if (gridSolutions.RowsCount > 1) { gridSolutions.Selection.SelectRow(1, true); } else { // grid empty -> clear drawing _selectedAnalysis = null; graphCtrlPack.Invalidate(); graphCtrlSolution.Invalidate(); } } catch (Exception ex) { _log.Error(ex.Message); } }
public override void UpdateGrid() { // remove all existing rows gridSolutions.Rows.Clear(); // *** IViews // captionHeader SourceGrid.Cells.Views.RowHeader captionHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader veHeaderCaption = new DevAge.Drawing.VisualElements.RowHeader(); veHeaderCaption.BackColor = Color.SteelBlue; veHeaderCaption.Border = DevAge.Drawing.RectangleBorder.NoBorder; captionHeader.Background = veHeaderCaption; captionHeader.ForeColor = Color.Black; captionHeader.Font = new Font("Arial", 10, FontStyle.Bold); captionHeader.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter; // viewRowHeader SourceGrid.Cells.Views.RowHeader viewRowHeader = new SourceGrid.Cells.Views.RowHeader(); DevAge.Drawing.VisualElements.RowHeader backHeader = new DevAge.Drawing.VisualElements.RowHeader(); backHeader.BackColor = Color.LightGray; backHeader.Border = DevAge.Drawing.RectangleBorder.NoBorder; viewRowHeader.Background = backHeader; viewRowHeader.ForeColor = Color.Black; viewRowHeader.Font = new Font("Arial", 10, FontStyle.Regular); // viewNormal CellBackColorAlternate viewNormal = new CellBackColorAlternate(Color.LightBlue, Color.White); // *** SourceGrid.Cells.RowHeader rowHeader; int iRow = -1; // case caption gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Case"); rowHeader.ColumnSpan = 2; rowHeader.View = captionHeader; gridSolutions[iRow, 0] = rowHeader; // layer # gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Layer #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(_solution.LayerCount); // interlayer # if (_solution.InterlayerCount > 0) { gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Interlayer #"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(_solution.InterlayerCount); } // *** Item # (recursive count) Packable content = _analysis.Content; int itemCount = _solution.ItemCount; int number = 1; do { itemCount *= number; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader(string.Format("{0} #", content.DetailedName)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // load dimensions BBox3D bboxLoad = _solution.BBoxLoad; // --- gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format("Load dimensions\n({0} x {0} * {0})", UnitsManager.LengthUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#} x {1:0.#} x {2:0.#}", bboxLoad.Length, bboxLoad.Width, bboxLoad.Height)); // net weight if (_solution.HasNetWeight) { rowHeader = new SourceGrid.Cells.RowHeader( string.Format("Net weight ({0})", UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.NetWeight)); } // load weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format("Load Weight ({0})", UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LoadWeight)); // total weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format("Total weight ({0})", UnitsManager.MassUnitString)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.Weight)); // volume efficiency gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Vol. efficiency (%)"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.VolumeEfficiency)); int noLayerTypesUsed = 0; for (int i = 0; i < _solution.Layers.Count; ++i) { noLayerTypesUsed += _solution.Layers[i].BoxCount > 0 ? 1 : 0; } // ### layers : begin for (int i = 0; i < _solution.Layers.Count; ++i) { List <int> layerIndexes = _solution.LayerTypeUsed(i); if (0 == layerIndexes.Count) { continue; } // layer caption gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader((noLayerTypesUsed == 1) ? "Layers : All" : BuildLayerCaption(layerIndexes)); rowHeader.ColumnSpan = 2; rowHeader.View = captionHeader; gridSolutions[iRow, 0] = rowHeader; // *** Item # (recursive count) content = _analysis.Content; itemCount = _solution.LayerBoxCount(i); number = 1; do { itemCount *= number; gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader( string.Format("{0} #", content.DetailedName)); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell(itemCount); }while (null != content && content.InnerContent(ref content, ref number)); // *** // layer weight gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Weight"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LayerWeight(i))); // layer space gridSolutions.Rows.Insert(++iRow); rowHeader = new SourceGrid.Cells.RowHeader("Spaces"); rowHeader.View = viewRowHeader; gridSolutions[iRow, 0] = rowHeader; gridSolutions[iRow, 1] = new SourceGrid.Cells.Cell( string.Format(CultureInfo.InvariantCulture, "{0:0.#}", _solution.LayerMaximumSpace(i))); } gridSolutions.AutoSizeCells(); gridSolutions.Columns.StretchToFit(); gridSolutions.AutoStretchColumnsToFitWidth = true; gridSolutions.Invalidate(); }