示例#1
0
        public void TestGuiData()
        {
            GuiData data = new GuiData()
            {
                Name = "Data"
            };

            data.ToolbarItems.Add(new GuiToolbarItem()
            {
                Name = "tlbSave", Title = "Uložit", ToolTip = "Uložit všechna data"
            });
            data.ToolbarItems.Add(new GuiToolbarItem()
            {
                Name = "tlbReload", Title = "Přenačíst", ToolTip = "Znovu načíst všechna data"
            });

            data.ContextMenuItems.Add(new GuiContextMenuItem()
            {
                Name = "cnxAddWork", Title = "Přidá další práci", ToolTip = "Přidá další práci v označeném místě"
            });

            GuiPage page = new GuiPage()
            {
                Name = "pageMain", Title = "Dílna 1", ToolTip = "Zobrazuje veškerá data první dílny"
            };

            data.Pages.Add(page);

            GuiGrid taskGrid = new GuiGrid()
            {
                Name = "taskGrid", Title = "Pracovní úkoly", ToolTip = "Zobrazuje úkoly, které se mají na této dílně provádět"
            };
            GuiDataTable taskRows = new GuiDataTable()
            {
                Name = "taskRows"
            };

            taskRows.ClassId = 1363;
            taskRows.AddColumn(new GuiDataColumn()
            {
                Name = "record_gid", BrowseColumnType = BrowseColumnType.RecordId
            });
            taskRows.AddColumn(new GuiDataColumn()
            {
                Name = "reference", Title = "Reference", Width = 85
            });
            taskRows.AddColumn(new GuiDataColumn()
            {
                Name = "nazev", Title = "Název", Width = 200
            });
            taskRows.AddColumn(new GuiDataColumn()
            {
                Name = "constr_element", Title = "Dílec", Width = 200
            });
            taskGrid.RowTable = taskRows;
            page.LeftPanel.Grids.Add(taskGrid);

            GuiGrid workGrid = new GuiGrid()
            {
                Name = "workGrid", Title = "Pracovní rozvrh", ToolTip = "Zobrazuje prostor dílny a její využití"
            };
            GuiDataTable workRows = new GuiDataTable()
            {
                Name = "workRows"
            };

            workRows.ClassId = 1817;
            workRows.AddColumn(new GuiDataColumn()
            {
                Name = "record_gid", BrowseColumnType = BrowseColumnType.RecordId
            });
            workRows.AddColumn(new GuiDataColumn()
            {
                Name = "reference", Title = "Reference", Width = 85
            });
            workRows.AddColumn(new GuiDataColumn()
            {
                Name = "nazev", Title = "Název", Width = 200
            });
            workRows.AddColumn(new GuiDataColumn()
            {
                Name = "constr_element", Title = "Dílec", Width = 200
            });
            GuiDataRow wr1 = workRows.AddRow(new GuiId(1817, 1), "Refer 1", "Název 1", "Výrobek A");

            wr1.Graph = new GuiGraph();
            wr1.Graph.GraphItems.Add(new GuiGraphItem()
            {
                ItemId = new GuiId(1817, 1), RowId = new GuiId(1364, 1), Time = new GuiTimeRange(new DateTime(2018, 8, 1, 12, 0, 0), new DateTime(2018, 8, 1, 16, 0, 0))
            });
            wr1.Graph.GraphItems.Add(new GuiGraphItem()
            {
                ItemId = new GuiId(1817, 2), RowId = new GuiId(1364, 1), Time = new GuiTimeRange(new DateTime(2018, 8, 1, 16, 0, 0), new DateTime(2018, 8, 1, 20, 0, 0))
            });
            wr1.Graph.GraphItems.Add(new GuiGraphItem()
            {
                ItemId = new GuiId(1817, 3), RowId = new GuiId(1364, 1), Time = new GuiTimeRange(new DateTime(2018, 8, 1, 21, 0, 0), new DateTime(2018, 8, 1, 22, 0, 0))
            });
            GuiDataRow wr2 = workRows.AddRow(new GuiId(1817, 2), "Referen 2", "Náz 2", "Výrobek B");
            GuiDataRow wr3 = workRows.AddRow(new GuiId(1817, 3), "Reference 3", "N 3", "Výrobek C");

            workGrid.RowTable = workRows;

            workGrid.GraphProperties.AxisResizeMode        = AxisResizeContentMode.ChangeScale;
            workGrid.GraphProperties.InteractiveChangeMode = AxisInteractiveChangeMode.Shift;

            GraphItemBehaviorMode graph4BehaviorMode = (GraphItemBehaviorMode.DefaultText | GraphItemBehaviorMode.ResizeTime);
            DateTime graph4Begin = new DateTime(2018, 8, 1, 14, 30, 45, 550);
            DateTime graph4End   = new DateTime(2018, 8, 1, 18, 15, 30, 10);

            wr1.Graph.GraphItems.Add(new GuiGraphItem()
            {
                ItemId = new GuiId(1817, 4), RowId = new GuiId(1364, 2), Time = new GuiTimeRange(graph4Begin, graph4End), BehaviorMode = graph4BehaviorMode
            });

            page.MainPanel.Grids.Add(workGrid);

            data.Finalise();

            string guiMainItems = workRows.FullName;
            string guiItem4Path = wr1.Graph.GraphItems[0].FullName;

            IGuiItem item1 = data.FindByFullName(@"Data\toolBar\tlbSave");
            IGuiItem item2 = data.FindByFullName(@"Data\contextMenu\cnxAddWork");
            IGuiItem item3 = data.FindByFullName(@"Data\pageMain\mainPanel\workGrid\");


            string serial   = Persist.Serialize(data);
            object deserial = Persist.Deserialize(serial);

            if (deserial == null)
            {
                throw new AssertFailedException("Deserializovaný objekt je null.");
            }

            GuiData clone = deserial as GuiData;

            if (clone == null)
            {
                throw new AssertFailedException("Deserializovaný objekt není odpovídající třídy GuiData.");
            }

            if (clone.ToolbarItems.Count != data.ToolbarItems.Count)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající počet prvků v ToolbarItems, má být " + data.ToolbarItems.Count + "; je " + clone.ToolbarItems.Count + ".");
            }

            if (clone.ToolbarItems.Items[0].Name != data.ToolbarItems.Items[0].Name)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající Name prvku ToolbarItems[0], má být " + data.ToolbarItems.Items[0].Name + "; je " + clone.ToolbarItems.Items[0].Name + ".");
            }

            if (clone.Pages.Count != data.Pages.Count)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající počet prvků v Pages, má být " + data.Pages.Count + "; je " + clone.Pages.Count + ".");
            }

            if (clone.Pages[0].Name != data.Pages[0].Name)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající Title prvku Pages[0], má být " + data.Pages[0].Title + "; je " + clone.Pages[0].Title + ".");
            }

            if (clone.Pages[0].LeftPanel.Grids.Count != data.Pages[0].LeftPanel.Grids.Count)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající počet prvků v Pages[0].LeftPanel.Grids, má být " + data.Pages[0].LeftPanel.Grids.Count + "; je " + clone.Pages[0].LeftPanel.Grids.Count + ".");
            }

            string taskGridText = taskGrid.ToString();
            string taskClonText = clone.Pages[0].LeftPanel.Grids[0].ToString();

            if (taskClonText != taskGridText)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající obsah v TaskGridu, má být " + taskGridText + "; je " + taskClonText + ".");
            }

            if (clone.Pages[0].MainPanel.Grids.Count != data.Pages[0].MainPanel.Grids.Count)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající počet prvků v Pages[0].MainPanel.Grids, má být " + data.Pages[0].MainPanel.Grids.Count + "; je " + clone.Pages[0].MainPanel.Grids.Count + ".");
            }

            string workGridText = workGrid.ToString();
            string workClonText = clone.Pages[0].MainPanel.Grids[0].ToString();

            if (workClonText != workGridText)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje odpovídající obsah v WorkGridu, má být " + workGridText + "; je " + workClonText + ".");
            }

            GuiGraphTable workItemsB = data.FindByFullName(guiMainItems) as GuiGraphTable;

            GuiGraphItem graphItem4B = data.FindByFullName(guiItem4Path) as GuiGraphItem;

            if (graphItem4B == null)
            {
                throw new AssertFailedException("Deserializovaný objekt neobsahuje grafický prvek 4.");
            }

            if (graphItem4B.BehaviorMode != graph4BehaviorMode)
            {
                throw new AssertFailedException("Deserializovaný grafický prvek 4 nemá správnou hodnotu BehaviorMode, má být " + graph4BehaviorMode + "; je " + graphItem4B.BehaviorMode + ".");
            }
            if (graphItem4B.Time.Begin != graph4Begin)
            {
                throw new AssertFailedException("Deserializovaný grafický prvek 4 nemá správnou hodnotu Begin, má být " + graph4Begin + "; je " + graphItem4B.Time.Begin + ".");
            }
            if (graphItem4B.Time.End != graph4End)
            {
                throw new AssertFailedException("Deserializovaný grafický prvek 4 nemá správnou hodnotu End, má být " + graph4End + "; je " + graphItem4B.Time.End + ".");
            }
        }