Ejemplo n.º 1
0
 public override void RefreshInfo()
 {
     if (colLogic == null)
     {
         colString              = BuildColumn(listInfo, null, "ToString");
         colString.Editable     = false;
         colOrder               = BuildColumn(listInfo, null, "Order");
         colOrder.Visible       = false;
         colLogic               = BuildColumn(listInfo, null, "Logic");
         colParamTable          = BuildColumn(listInfo, null, "Column.Table");
         colParamTable.Editable = false;
         colParam               = BuildColumn(listInfo, null, "Column");
         colParam.Width         = 200;
         colComparer            = BuildColumn(listInfo, null, "Comparer");
         colValue               = BuildColumn(listInfo, null, "Value");
         colValue.Width         = 200;
         listInfo.Columns.Add(colLogic);
         listInfo.Columns.Add(colParamTable);
         listInfo.Columns.Add(colParam);
         listInfo.Columns.Add(colComparer);
         listInfo.Columns.Add(colValue);
         listInfo.Tree = true;
         listInfo.Sorters.Clear();
         OnColumnSort(colOrder, ListSortDirection.Ascending);
     }
     base.RefreshInfo();
 }
Ejemplo n.º 2
0
        public UpdateTemplateResponse UpdateTemplate(UpdateTemplateRequest request)
        {
            var template = DataContext.DashboardTemplates
                           .Include(x => x.LayoutRows)
                           .Include(x => x.LayoutRows.Select(y => y.LayoutColumns))
                           .Single(x => x.Id == request.Id);

            template.Name        = request.Name;
            template.RefershTime = request.RefershTime;
            template.Remark      = request.Remark;
            template.IsActive    = request.IsActive;
            foreach (var row in template.LayoutRows.ToList())
            {
                foreach (var column in row.LayoutColumns.ToList())
                {
                    DataContext.LayoutColumns.Remove(column);
                }
                DataContext.LayoutRows.Remove(row);
            }

            var index = 0;

            foreach (var row in request.LayoutRows)
            {
                var layoutRow = new LayoutRow();
                var colIndex  = 0;
                layoutRow.Index = index;
                foreach (var col in row.LayoutColumns)
                {
                    var layoutColumn = new LayoutColumn();
                    layoutColumn.Index = colIndex;
                    layoutColumn.Width = col.Width;
                    if (col.ArtifactId != 0)
                    {
                        if (DataContext.Artifacts.Local.FirstOrDefault(x => x.Id == col.ArtifactId) == null)
                        {
                            var artifact = new Artifact {
                                Id = col.ArtifactId, GraphicType = "Unchanged", GraphicName = "Unchanged", HeaderTitle = "Unchanged"
                            };
                            //DataContext.Entry(artifact).State = EntityState.Unchanged;
                            DataContext.Artifacts.Attach(artifact);
                            layoutColumn.Artifact = artifact;
                        }
                        else
                        {
                            layoutColumn.Artifact = DataContext.Artifacts.Local.FirstOrDefault(x => x.Id == col.ArtifactId);
                        }
                    }
                    layoutRow.LayoutColumns.Add(layoutColumn);
                    colIndex++;
                }
                template.LayoutRows.Add(layoutRow);
                index++;
            }
            DataContext.DashboardTemplates.Attach(template);
            DataContext.Entry(template).State = EntityState.Modified;
            DataContext.SaveChanges();

            return(new UpdateTemplateResponse());
        }
        void HighlightLineNumberingArea(LayoutColumn column, int leftBoundary)
        {
            LayoutPage page         = column.GetParentByType <LayoutPage>();
            Rectangle  marginBounds = new Rectangle(new Point(leftBoundary, 0), new Size(column.Bounds.X - leftBoundary, page.Bounds.Height));

            Canvas.FillRectangle(new RichEditBrush(NumberingHighlightColor), marginBounds);
        }
Ejemplo n.º 4
0
        public void WriteMapColumns(LayoutColumn map, int sc, int sr)
        {
            mc++;
            if (sc == 0)
            {
                writer.WriteElement(new Column()
                {
                    Min = (uint)mc, Max = (uint)mc, Width = 8, CustomWidth = true
                });
            }
            sc++;
            foreach (var column in map)
            {
                if (column.Visible)
                {
                    map.GetVisibleIndex(column, out int c, out int r);
                    c += sc; r += sr;

                    if (column.Count > 0)
                    {
                        WriteMapColumns(column, c, r);
                    }
                    else if (c >= mc)
                    {
                        mc++;
                        writer.WriteElement(new Column()
                        {
                            Min = (uint)mc, Max = (uint)mc, Width = column.Width / 6, CustomWidth = true
                        });
                    }
                }
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Клонирует описание столбца
 /// </summary>
 /// <param name="column"></param>
 /// <returns></returns>
 protected static LayoutColumn cloneLayoutColumn(LayoutColumn column)
 {
     return(new LayoutColumn(
                null,
                column.Title,
                column.RSFileldName,
                column.IsHidden,
                column.Align,
                column.VAlign,
                column.Width,
                column.CellCssClass,
                column.HeaderCssClass,
                column.TotalCssClass,
                column.SubTitleCssClass,
                column.SubTotalCssClass,
                column.ColumnIsCounter,
                column.CounterStart,
                column.CounterIncrement,
                column.AggregationFunction,
                column.AggregationString,
                column.AggregationStringSubTitle,
                column.AggregationStringSubTotals,
                column.AggregationColspan,
                column.RowspanBy,
                column.Encoding,
                vartypes.@string,
                column.Formatters
                ));
 }
Ejemplo n.º 6
0
        public CreateTemplateResponse CreateTemplate(CreateTemplateRequest request)
        {
            var template = request.MapTo <DashboardTemplate>();
            var index    = 0;

            foreach (var row in request.LayoutRows)
            {
                var layoutRow = new LayoutRow();
                var colIndex  = 0;
                layoutRow.Index = index;
                foreach (var col in row.LayoutColumns)
                {
                    var LayoutColumn = new LayoutColumn();
                    LayoutColumn.Index = colIndex;
                    LayoutColumn.Width = col.Width;
                    LayoutColumn.HighlightPeriodeType = col.HighlightPeriodeType;
                    LayoutColumn.ColumnType           = col.ColumnType;
                    if (col.ArtifactId != 0)
                    {
                        if (DataContext.Artifacts.Local.Where(x => x.Id == col.ArtifactId).FirstOrDefault() == null)
                        {
                            var artifact = new Artifact {
                                Id = col.ArtifactId, GraphicType = "Unchanged", GraphicName = "Unchanged", HeaderTitle = "Unchanged"
                            };
                            //DataContext.Entry(artifact).State = EntityState.Unchanged;
                            DataContext.Artifacts.Attach(artifact);
                            LayoutColumn.Artifact = artifact;
                        }
                        else
                        {
                            LayoutColumn.Artifact = DataContext.Artifacts.Local.Where(x => x.Id == col.ArtifactId).FirstOrDefault();
                        }
                    }
                    if (col.HighlightTypeId != 0)
                    {
                        if (DataContext.SelectOptions.Local.Where(x => x.Id == col.HighlightTypeId).FirstOrDefault() == null)
                        {
                            var highlightType = new SelectOption {
                                Id = col.HighlightTypeId
                            };
                            DataContext.SelectOptions.Attach(highlightType);
                            LayoutColumn.HighlightType = highlightType;
                        }
                        else
                        {
                            LayoutColumn.HighlightType = DataContext.SelectOptions.Local.Where(x => x.Id == col.HighlightTypeId).FirstOrDefault();
                        }
                    }
                    layoutRow.LayoutColumns.Add(LayoutColumn);
                    colIndex++;
                }
                template.LayoutRows.Add(layoutRow);
                index++;
            }
            DataContext.DashboardTemplates.Add(template);
            DataContext.SaveChanges();
            return(new CreateTemplateResponse());
        }
        private void ValidateColumnLayout(Value layout, ResultInfo result)
        {
            LayoutColumn column = _strictParser.Parse <LayoutColumn>(layout.StructValue.ToString());

            // Each nested item should be a column
            foreach (LayoutColumn_Column col in column.Columns)
            {
                foreach (Value v in col.Contents)
                {
                    ValidateContent(v, result);
                }
            }
        }
        private LayoutColumn GetLayout(string sectionName)
        {
            LayoutColumn layout = new LayoutColumn();

            if (!string.IsNullOrEmpty(sectionName))
            {
                if (sectionName == "data_ora")
                {
                    layout.Type = sectionName;
                }
                else
                {
                    var array = sectionName.Split('\'');

                    layout.Area = array[0];
                    layout.Type = array[1].ToLower();
                    // questa gestione è dovuta dal fatto che nei sensori mi aspetto il nome dei modelli di riferimento.
                    if (array[2].Contains('-'))
                    {
                        var split = array[2].Split('-');
                        for (int i = 0; i < split.Length; i++)
                        {
                            if (i == 0)
                            {
                                layout.ModelName = split[i];
                            }
                            else
                            {
                                if (layout.Father == null)
                                {
                                    layout.Father = new List <string>();
                                }
                                layout.Father.Add(split[i]);
                            }
                        }
                    }
                    else
                    {
                        layout.ModelName = array[2];
                    }
                    layout.Value = array[3];
                }
            }
            return(layout);
        }
Ejemplo n.º 9
0
 private void AddGirdView(DataTable dt, string bjlx, string title)
 {
     try
     {
         if (dt != null)
         {
             Store store = new Store {
                 ID = "StoreRow_" + bjlx + "_" + DateTime.Now.ToString("HHmmss")
             };
             JsonReader reader = new JsonReader();
             reader.IDProperty = "col0";
             store.Reader.Add(reader);
             Ext.Net.Panel tp = new Ext.Net.Panel();
             tp.ID    = "Panel_" + bjlx + "_" + DateTime.Now.ToString("HHmmss");
             tp.Title = title;
             ColumnLayout cl = new ColumnLayout();
             cl.ID        = "ColumnLayout_" + bjlx + "_" + DateTime.Now.ToString("HHmmss");
             cl.Split     = true;
             cl.FitHeight = true;
             LayoutColumn lc1 = new LayoutColumn();
             lc1.ColumnWidth = (decimal)0.75;
             LayoutColumn lc2 = new LayoutColumn();
             lc2.ColumnWidth = (decimal)0.25;
             cl.Columns.Add(lc1);
             cl.Columns.Add(lc2);
             GridPanel gridPanel = AddGridPanel(dt, store, bjlx, reader);
             lc1.Items.Add(gridPanel);
             FormPanel panel = AddFormPanel(bjlx, title);
             lc2.Items.Add(panel);
             tp.Items.Add(cl);
             gridlist = gridlist + tp.ID + ",";
             TabPanelGrid.Items.Add(tp);
             if (X.IsAjaxRequest)
             {
                 tp.Render();
             }
         }
     }
     catch (Exception ex)
     {
         ILog.WriteErrorLog(ex);
         logManager.InsertLogError("AlarmCarDeal.aspx-AddGirdView", ex.Message + ";" + ex.StackTrace, "AddGirdView has an exception");
     }
 }
        public override void DrawColumn(LayoutColumn column)
        {
            LayoutPageArea pageArea = column.GetParentByType <LayoutPageArea>();

            if (pageArea != null)
            {
                int leftBoundary = 0;
                if (previousColumnIndex >= 0)
                {
                    leftBoundary = pageArea.Columns[previousColumnIndex].Bounds.Right;
                }
                if (column.LineNumbers.Count > 0)
                {
                    HighlightLineNumberingArea(column, leftBoundary);
                }
                previousColumnIndex++;
            }
            base.DrawColumn(column);
        }
        private StrcutureSystem SetValueInCogeneratorValueList(LayoutColumn valueColumnSplitted, StrcutureSystem structure, string value, int index)
        {
            var cogeFound = structure.CogeneratorList.Find(c => c.ModelName == valueColumnSplitted.ModelName);

            if (cogeFound != null)
            {
                var valueBag = cogeFound.CogeneratorValue[index - 3];
                if (valueBag != null)
                {
                    switch (valueColumnSplitted.Value)
                    {
                    case "PotGe": valueBag.GeneratorePower = Convert.ToDouble(value); break;

                    case "Cosfi": valueBag.Cosphi = Convert.ToDouble(value); break;

                    case "CoGeL1":
                    case "CoGeL2":
                    case "CoGeL3":
                    {
                        if (valueBag.GeneratorCurrent == null)
                        {
                            valueBag.GeneratorCurrent = new List <double>();
                        }
                        valueBag.GeneratorCurrent.Add(Convert.ToDouble(value));
                    }
                    break;

                    case "TeGeL1":
                    case "TeGeL2":
                    case "TeGeL3":
                    {
                        if (valueBag.GeneratorVoltage == null)
                        {
                            valueBag.GeneratorVoltage = new List <double>();
                        }
                        valueBag.GeneratorVoltage.Add(Convert.ToDouble(value));
                    }
                    break;
                    }
                }
            }
            return(structure);
        }
        private StrcutureSystem SetHeatPump(LayoutColumn valueSplitted, StrcutureSystem structure)
        {
            var heatPumpFund = structure.HeatPumpList.Find(c => c.ModelName == valueSplitted.ModelName);

            if (heatPumpFund == null)
            {
                var item = new HeatPump()
                {
                    InstallationArea = valueSplitted.Area,
                    ModelName        = valueSplitted.ModelName
                };
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    if (item.HeatPumpValue == null)
                    {
                        item.HeatPumpValue = new List <HeatPumpValue>();
                    }
                    if (item.HeatPumpValue.Count == 0)
                    {
                        HeatPumpValue heatPumpValue = new HeatPumpValue();
                        heatPumpValue.LabelValues = new List <string>()
                        {
                            valueSplitted.Value
                        };
                        item.HeatPumpValue.Add(heatPumpValue);
                    }
                }
                structure.HeatPumpList.Add(item);
            }
            else
            {
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    var valueBag = heatPumpFund.HeatPumpValue.LastOrDefault();
                    if (valueBag != null && !valueBag.LabelValues.Contains(valueSplitted.Value))
                    {
                        valueBag.LabelValues.Add(valueSplitted.Value);
                    }
                }
            }
            return(structure);
        }
        private StrcutureSystem SetCogeneratorList(LayoutColumn valueSplitted, StrcutureSystem structure)
        {
            var cogeFind = structure.CogeneratorList.Find(c => c.ModelName == valueSplitted.ModelName);

            if (cogeFind == null)
            {
                var item = new Cogenerator()
                {
                    InstallationArea = valueSplitted.Area,
                    ModelName        = valueSplitted.ModelName
                };
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    if (item.CogeneratorValue == null)
                    {
                        item.CogeneratorValue = new List <CogeneratoreValue>();
                    }
                    if (item.CogeneratorValue.Count == 0)
                    {
                        CogeneratoreValue cogVal = new CogeneratoreValue();
                        cogVal.LabelValues = new List <string>()
                        {
                            valueSplitted.Value
                        };
                        item.CogeneratorValue.Add(cogVal);
                    }
                }
                structure.CogeneratorList.Add(item);
            }
            else
            {
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    var valueBag = cogeFind.CogeneratorValue.LastOrDefault();
                    if (valueBag != null && !valueBag.LabelValues.Contains(valueSplitted.Value))
                    {
                        valueBag.LabelValues.Add(valueSplitted.Value);
                    }
                }
            }
            return(structure);
        }
        private StrcutureSystem SetBoilerList(LayoutColumn valueSplitted, StrcutureSystem structure)
        {
            var boilerFund = structure.BoilerList.Find(c => c.ModelName == valueSplitted.ModelName);

            if (boilerFund == null)
            {
                var item = new Boiler()
                {
                    InstallationArea = valueSplitted.Area,
                    ModelName        = valueSplitted.ModelName
                };
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    if (item.BoilerValue == null)
                    {
                        item.BoilerValue = new List <BoilerValue>();
                    }
                    if (item.BoilerValue.Count == 0)
                    {
                        BoilerValue boilerValue = new BoilerValue();
                        boilerValue.LabelValues = new List <string>()
                        {
                            valueSplitted.Value
                        };
                        item.BoilerValue.Add(boilerValue);
                    }
                }
                structure.BoilerList.Add(item);
            }
            else
            {
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    var valueBag = boilerFund.BoilerValue.LastOrDefault();
                    if (valueBag != null && !valueBag.LabelValues.Contains(valueSplitted.Value))
                    {
                        valueBag.LabelValues.Add(valueSplitted.Value);
                    }
                }
            }
            return(structure);
        }
        // get information about a current regular text block
        public static string GetInformationAboutRegularTextBlock(PlainTextBox currentTextBlock, Document currentDocument)
        {
            string returnedInformation = "!A REGULAR TEXT BLOCK IS SELECTED!\r\n";

            returnedInformation += String.Format("Content: {0}\r\n", currentTextBlock.Text);

            LayoutRow    currentRow       = currentTextBlock.Parent as LayoutRow;
            LayoutColumn currentColumn    = currentRow.Parent as LayoutColumn;
            int          currentLineIndex = currentColumn.Rows.ToList().IndexOf(currentRow);

            returnedInformation += String.Format("Line index: {0}\r\n", currentLineIndex + 1);
            returnedInformation += String.Format("Start position: {0}\r\n", currentTextBlock.Range.Start);
            returnedInformation += String.Format("End position: {0}\r\n", currentTextBlock.Range.Start + currentTextBlock.Range.Length);

            int currentParagraphIndex = currentDocument.Paragraphs.ToList().IndexOf(currentDocument.Paragraphs.Get(currentDocument.CreatePosition(currentTextBlock.Range.Start)));

            returnedInformation += String.Format("Paragrpah index: {0}\r\n", currentParagraphIndex + 1);
            returnedInformation += String.Format("Text block bounds: {0}\r\n", currentTextBlock.Bounds);

            return(returnedInformation);
        }
        private StrcutureSystem SetValueInHeatPupValueList(LayoutColumn valueColumnSplitted, StrcutureSystem structure, string value, int row)
        {
            var heatPump = structure.HeatPumpList.Find(c => c.ModelName == valueColumnSplitted.ModelName);

            if (heatPump != null)
            {
                var valueBag = heatPump.HeatPumpValue[row - 3];
                if (valueBag != null)
                {
                    switch (valueColumnSplitted.Value)
                    {
                    case "Amp": valueBag.CurrentAbsorbed = Convert.ToDouble(value); break;

                    case "FlRate": valueBag.PompFlow = Convert.ToDouble(value); break;

                    case "PwrLO": valueBag.InstantPower = Convert.ToDouble(value); break;
                    }
                }
            }
            return(structure);
        }
        private StrcutureSystem SetValueInBoilerValueList(LayoutColumn valueColumnSplitted, StrcutureSystem structure, string value, int row)
        {
            var boilerFound = structure.BoilerList.Find(c => c.ModelName == valueColumnSplitted.ModelName);

            if (boilerFound != null)
            {
                var valueBag = boilerFound.BoilerValue[row - 3];
                if (valueBag != null)
                {
                    switch (valueColumnSplitted.Value)
                    {
                    case "TFl": valueBag.SetPointTemperatureSend = Convert.ToDouble(value); break;

                    case "Mod": valueBag.ModulationFlame = Convert.ToDouble(value); break;

                    case "PT1Te": valueBag.PtTemperatureSend = Convert.ToDouble(value); break;

                    case "StCBu": valueBag.BurnerState = Convert.ToDouble(value); break;
                    }
                }
            }
            return(structure);
        }
Ejemplo n.º 18
0
 protected override void VisitColumn(LayoutColumn column)
 {
     TryAddElementToCollection(column, ContentDisplayAction.Select, true);
     base.VisitColumn(column);
 }
Ejemplo n.º 19
0
 public override void DrawColumn(LayoutColumn column)
 {
     base.DrawColumn(column);
     HighlightElement(column);
 }
 protected override void VisitColumn(LayoutColumn column)
 {
     AddTreeNode(column, ContentDisplayAction.Select);
     base.VisitColumn(column);
 }
Ejemplo n.º 21
0
        public void ExpMapLayout(SheetData sheetData, LayoutColumn map, int scol, int srow, out int mcol, out int mrow, LayoutList list, object listItem, StringKeyList stringTable)
        {
            int tws = map.GetWithdSpan();

            //int ths = tool.LayoutMapTool.GetHeightSpan(map);
            mrow = srow;
            mcol = scol;
            Row temp = null;

            for (int i = 0; i < map.Count; i++)
            {
                var item = map[i];
                if (!item.Visible)
                {
                    continue;
                }

                map.GetVisibleIndex(item, out int c, out int r);
                c += scol;
                r += srow;
                if (item.Count > 0)
                {
                    ExpMapLayout(sheetData, item, c, r, out c, out r, list, listItem, stringTable);
                }
                else
                {
                    object celldata = ((LayoutColumn)item).Text;

                    if (list != null)
                    {
                        object val = list.ReadValue(listItem, (ILayoutCell)item);
                        celldata = list.FormatValue(listItem, val, (ILayoutCell)item);
                        if (val is decimal && decimal.TryParse(celldata.ToString(), out decimal dval))
                        {
                            celldata = val;
                        }
                    }

                    Cell cell = GetCell(celldata, c, r, celldata is decimal ? 3U : 6U, stringTable);

                    if (list == null)
                    {
                        cell.StyleIndex = 7;
                        GetColumn(sheetData, c + 1, item.Width);
                    }
                    if (temp == null || temp.RowIndex != r)
                    {
                        temp = GetRow(sheetData, r, mrow >= r);
                    }

                    temp.Append(cell);

                    int ws = map.GetRowWidthSpan(item.Row);
                    if (tws > ws)
                    {
                        MergeCell mcell = new MergeCell()
                        {
                            Reference = new CellRange(c, r, c + tws - ws, r).ToString()
                        };
                        GetMergeCells(sheetData.Parent).Append(mcell);
                    }
                    int hs = map.GetRowHeightSpan(item.Row, true);
                    if (hs > 1)
                    {
                        MergeCell mcell = new MergeCell()
                        {
                            Reference = new CellRange(c, r, c, r + hs - 1).ToString()
                        };
                        GetMergeCells(sheetData.Parent).Append(mcell);
                    }
                }
                if (r > mrow)
                {
                    mrow = r;
                }
                if (c > mcol)
                {
                    mcol = c;
                }
            }
        }
Ejemplo n.º 22
0
        public void WriteMapItem(LayoutColumn map, int listIndex, object listItem, int sc, int sr, ref int mr, StringKeyList stringTable, List <Row> prows = null)
        {
            int tws  = map.GetWithdSpan();
            Row row  = null;
            var rows = prows;

            if (prows == null)
            {
                rows = new List <Row>();
                mr++;
                row = GenerateRow(mr, mc, listItem == null, stringTable);
                WriteCell(row.GetFirstChild <Cell>(), listItem == null ? (object)"#" : (object)(listIndex + 1), stringTable);
                rows.Add(row);
                sc = 1;
            }
            var nr = mr;

            foreach (var item in map)
            {
                if (item.Visible)
                {
                    map.GetVisibleIndex(item, out int c, out int r);
                    c += sc; r += sr;
                    if (item.Count > 0)
                    {
                        WriteMapItem(item, listIndex, listItem, c, r, ref mr, stringTable, rows);
                    }
                    else
                    {
                        int rr = nr + r;
                        if (rows.Count <= r)
                        {
                            mr++;
                            row = GenerateRow(rr, mc, listItem == null, stringTable);
                            rows.Add(row);
                        }
                        else
                        {
                            row = rows[r];
                        }

                        object celldata = ((LayoutColumn)item).Text;
                        if (listIndex == -2)
                        {
                            celldata = list.GetCollectedValue((LayoutColumn)item, group);
                        }
                        if (listItem != null)
                        {
                            object val = list.ReadValue(listItem, (ILayoutCell)item);
                            celldata = list.FormatValue(listItem, val, (ILayoutCell)item);
                            if (val is decimal && ((ILayoutCell)item).Format != "p")
                            {
                                celldata = val;
                            }
                            if (prows == null && c == 1 && listItem is Node)
                            {
                                var s = GroupHelper.Level((Node)listItem) * 4;
                                celldata = celldata.ToString().PadLeft(celldata.ToString().Length + s, '-');
                            }
                        }

                        var cellc = (Cell)row.ChildElements.GetItem(c);
                        WriteCell(cellc, celldata, stringTable);
                        if (celldata is decimal)
                        {
                            cellc.StyleIndex = 3;
                        }

                        int ws = map.GetRowWidthSpan(item.Row);
                        int hs = map.GetRowHeightSpan(item.Row, true);
                        if (tws > ws && hs > 1)
                        {
                            mcells.Add(new MergeCell()
                            {
                                Reference = new CellRange(c, rr, c + tws - ws, rr + hs - 1).ToString()
                            });
                        }
                        else if (tws > ws)
                        {
                            mcells.Add(new MergeCell()
                            {
                                Reference = new CellRange(c, rr, c + tws - ws, rr).ToString()
                            });
                        }
                        else if (hs > 1)
                        {
                            mcells.Add(new MergeCell()
                            {
                                Reference = new CellRange(c, rr, c, rr + hs - 1).ToString()
                            });
                        }
                    }
                }
            }
            if (prows == null)
            {
                if (rows.Count > 1)
                {
                    mcells.Add(new MergeCell()
                    {
                        Reference = new CellRange(0, nr, 0, nr + rows.Count - 1).ToString()
                    });
                }
                if (listItem is Node)
                {
                    foreach (var item in rows)
                    {
                        item.OutlineLevel = (byte)(GroupHelper.Level((IGroup)listItem));
                        if (((IGroup)listItem).IsCompaund)
                        {
                            item.Collapsed = !((IGroup)listItem).Expand;
                        }
                        if (item.OutlineLevel > 0)
                        {
                            item.Hidden = !((IGroup)listItem).IsExpanded;
                        }
                    }
                }
                WriteRows(writer, rows);


                if (listItem is Node && map != null)
                {
                    var i = 0;
                    foreach (var item in ((Node)listItem).Nodes)
                    {
                        WriteMapItem(map, i++, item, 0, 0, ref mr, stringTable);
                    }
                }
            }
        }
Ejemplo n.º 23
0
 public void Visit(LayoutColumn column)
 {
     Array.ForEach(column.collection, c => c.Accept(this));
     Array.ForEach(column.fieldSet, f => f.Accept(this));
     Array.ForEach(column.tabGroup, tg => tg.Accept(this));
 }
        private StrcutureSystem SetValueInSensorValueList(LayoutColumn valueColumnSplitted, StrcutureSystem structure, string value, int row)
        {
            var sensorFound = new Sensor();

            if (structure.SensorList.Count() > 0)
            {
                foreach (string usedBy in valueColumnSplitted.Father)
                {
                    sensorFound = structure.SensorList.Find(c => c.ModelName == valueColumnSplitted.ModelName && c.UsedBy.Contains(usedBy));
                    if (sensorFound != null)
                    {
                        break;
                    }
                }
            }

            if (sensorFound != null)
            {
                if (valueColumnSplitted.Type == "energymeter")
                {
                    var valueBag = sensorFound.EnergyMeterList[row - 3];
                    if (valueBag != null)
                    {
                        switch (valueColumnSplitted.Value)
                        {
                        case "EgH": valueBag.Energy = Convert.ToDouble(value); break;

                        case "Fi": valueBag.M3Instant = Convert.ToDouble(value); break;

                        case "P": valueBag.InstantPower = Convert.ToDouble(value); break;

                        case "TFl": valueBag.TemperatureSend = Convert.ToDouble(value); break;

                        case "TRt": valueBag.TemperatureBack = Convert.ToDouble(value); break;

                        case "Vlm": valueBag.M3Total = Convert.ToDouble(value); break;

                        case "DT": valueBag.DeltaTemperature = Convert.ToDouble(value); break;
                        }
                    }
                }
                if (valueColumnSplitted.Type == "pump")
                {
                    var valueBag = sensorFound.PumpSensorList[row - 3];

                    if (valueBag != null)
                    {
                        switch (valueColumnSplitted.Value)
                        {
                        case "CMD":
                        {
                            if (valueBag.CommandValue == null)
                            {
                                valueBag.CommandValue = new List <CommandPump>();

                                CommandPump command = new CommandPump();
                                command.Father = valueColumnSplitted.Father.FirstOrDefault();         // non funziona se ci sono piu padri
                                command.Value  = Convert.ToDouble(value);
                                valueBag.CommandValue.Add(command);
                            }
                            else
                            {
                                var search = valueBag.CommandValue.Find(c => c.Father == valueColumnSplitted.Father.FirstOrDefault());
                                if (search != null)
                                {
                                    search.Value = Convert.ToDouble(value);
                                }
                                else
                                {
                                    CommandPump command = new CommandPump();
                                    command.Father = valueColumnSplitted.Father.FirstOrDefault();         // non funziona se ci sono piu padri
                                    command.Value  = Convert.ToDouble(value);
                                    valueBag.CommandValue.Add(command);
                                }
                            }

                            break;
                        }

                        case "TMnFI": valueBag.TemperatureSend = Convert.ToDouble(value); break;

                        case "TMnRt": valueBag.TemperatureBack = Convert.ToDouble(value); break;

                        case "TOa": valueBag.TemperatureExternal = Convert.ToDouble(value); break;
                        }
                    }
                }
            }
            return(structure);
        }
Ejemplo n.º 25
0
        public void ExpMapLayout(Doc.Odf.Table sheetData, LayoutColumn map, int scol, int srow, out int mcol, out int mrow, LayoutList list, object listItem)
        {
            int tws = map.GetWithdSpan();

            //int ths = tool.LayoutMapTool.GetHeightSpan(map);
            mrow = srow;
            mcol = scol;
            Doc.Odf.Row temp = null;
            for (int i = 0; i < map.Count; i++)
            {
                var item = map[i];
                if (!item.Visible)
                {
                    continue;
                }

                map.GetVisibleIndex(item, out int cc, out int rr);
                int c = cc + scol;
                int r = rr + srow;
                if (item.Count > 0)
                {
                    ExpMapLayout(sheetData, item, c, r, out c, out r, list, listItem);
                }
                else
                {
                    Doc.Odf.Cell cell = GetCell(sheetData, c, r);

                    if (list != null)
                    {
                        cell.StyleName = "ce3";
                        cell.Val       = list.FormatValue(listItem, (ILayoutCell)item) as string;
                    }
                    else
                    {
                        cell.StyleName = "ce1";
                        cell.Val       = item.Text;
                        GetColumn(sheetData, c + 1, item.Width);
                    }
                    if (temp == null || temp.Index != r)
                    {
                        temp = GetRow(sheetData, r, mrow >= r);
                    }

                    if (r > mrow && r > srow)
                    {
                        for (int j = 0; j < scol; j++)
                        {
                            var ccell = new Doc.Odf.CoveredCell(sheetData.Document);
                            temp.Add(ccell);
                        }
                    }

                    temp.Add(cell);

                    int ws = map.GetRowWidthSpan(item.Row);
                    if (tws > ws)
                    {
                        cell.NumberColumnsSpanned = ((tws - ws) + 1).ToString();
                        cell.NumberRowsSpanned    = "1";
                        var ccell = new Doc.Odf.CoveredCell(sheetData.Document)
                        {
                            ColumnsRepeatedCount = (tws - ws).ToString()
                        };
                        temp.Add(ccell);
                    }
                    int hs = map.GetRowHeightSpan(item.Row, true);
                    if (hs > 1)
                    {
                        cell.NumberRowsSpanned = (hs).ToString();
                        if (cell.NumberColumnsSpanned.Length == 0)
                        {
                            cell.NumberColumnsSpanned = "1";
                        }
                    }
                }

                if (r > mrow)
                {
                    mrow = r;
                }
                if (c > mcol)
                {
                    mcol = c;
                }
            }
        }
        private StrcutureSystem SetSensorList(LayoutColumn valueSplitted, StrcutureSystem structure)
        {
            var sensorFound = new Sensor();

            if (valueSplitted.Value != "CMD")
            {
                if (structure.SensorList.Count() > 0)
                {
                    foreach (string usedBy in valueSplitted.Father)
                    {
                        sensorFound = structure.SensorList.Find(c => c.ModelName == valueSplitted.ModelName && c.UsedBy.Contains(usedBy));
                        if (sensorFound != null)
                        {
                            break;
                        }
                    }
                }
            }
            else
            {
                sensorFound = structure.SensorList.Find(c => c.ModelName == valueSplitted.ModelName);
            }

            if (sensorFound == null || structure.SensorList.Count() == 0)
            {
                var item = new Sensor()
                {
                    InstallationArea = valueSplitted.Area,
                    ModelName        = valueSplitted.ModelName
                };
                item.UsedBy = new List <string>();
                item.UsedBy = valueSplitted.Father;

                if (valueSplitted.Type == "energymeter")
                {
                    if (item.EnergyMeterList == null)
                    {
                        item.EnergyMeterList = new List <EnergyMeter>();
                        EnergyMeter energyMeter = new EnergyMeter();
                        energyMeter.LabelValues = new List <string>()
                        {
                            valueSplitted.Value
                        };
                        item.EnergyMeterList.Add(energyMeter);
                    }
                    else
                    {
                        var valueBag = sensorFound.EnergyMeterList.LastOrDefault();
                        valueBag.LabelValues.Add(valueSplitted.Value);
                    }
                }
                if (valueSplitted.Type == "pump")
                {
                    if (item.PumpSensorList == null)
                    {
                        item.PumpSensorList = new List <PumpSensor>();
                        PumpSensor pump = new PumpSensor();
                        pump.LabelValues = new List <string>()
                        {
                            valueSplitted.Value
                        };
                        item.PumpSensorList.Add(pump);
                    }
                    else
                    {
                        var valueBag = sensorFound.PumpSensorList.LastOrDefault();
                        valueBag.LabelValues.Add(valueSplitted.Value);
                    }
                }
                structure.SensorList.Add(item);
            }
            else
            {
                if (!string.IsNullOrEmpty(valueSplitted.Value))
                {
                    if (valueSplitted.Type == "energymeter")
                    {
                        var valueBag = sensorFound.EnergyMeterList.LastOrDefault();
                        if (valueBag != null && !valueBag.LabelValues.Contains(valueSplitted.Value))
                        {
                            valueBag.LabelValues.Add(valueSplitted.Value);
                        }
                    }
                    if (valueSplitted.Type == "pump")
                    {
                        var valueBag = sensorFound.PumpSensorList.LastOrDefault();
                        if (valueBag != null && !valueBag.LabelValues.Contains(valueSplitted.Value))
                        {
                            valueBag.LabelValues.Add(valueSplitted.Value);
                        }
                        if (valueBag != null && valueSplitted.Value == "CMD")
                        {
                            foreach (string s in valueSplitted.Father)
                            {
                                if (!sensorFound.UsedBy.Contains(s))
                                {
                                    sensorFound.UsedBy.Add(s);
                                }
                            }
                        }
                    }
                }
            }

            return(structure);
        }