Example #1
0
        private void btnUpdateLayout_Click(object sender, EventArgs e)
        {
            Dashboard dashboard = new Dashboard();

            dashboard.LoadFromXml(@"..\..\Data\Dashboard.xml");
            DashboardItem grid  = (GridDashboardItem)dashboard.Items[0];
            DashboardItem chart = (ChartDashboardItem)dashboard.Items[1];
            DashboardItem range = (RangeFilterDashboardItem)dashboard.Items[2];

            // Creates layout items used to display dashboard items.
            DashboardLayoutItem gridItem  = new DashboardLayoutItem(grid, 35);
            DashboardLayoutItem chartItem = new DashboardLayoutItem(chart, 65);
            DashboardLayoutItem rangeItem = new DashboardLayoutItem(range, 20);

            // Creates a layout group that contains two layout items.
            DashboardLayoutGroup group1 =
                new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 80,
                                         gridItem, chartItem);
            // Creates a root layout group that contains the previously created group and
            // the layout item displaying the Range Filter dashboard item.
            DashboardLayoutGroup rootGroup =
                new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Vertical, 1,
                                         group1, rangeItem);

            // Specifies the root dashboard layout group.
            dashboard.LayoutRoot = rootGroup;

            dashboardViewer1.Dashboard = dashboard;
        }
Example #2
0
        void MoveRootToTabPage(DashboardLayoutTabPage layoutPage)
        {
            DashboardLayoutGroup rootGroup = TargetDashboard.LayoutRoot;

            TargetDashboard.LayoutRoot = null;
            layoutPage.ChildNodes.Add(rootGroup);
        }
Example #3
0
        private Dashboard CreateDashboard()
        {
            DashboardExcelDataSource excelDataSource = CreateExcelDataSource();
            Dashboard dBoard = new Dashboard();

            dBoard.DataSources.Add(excelDataSource);

            dBoard.BeginUpdate();
            // Create dashboard items.
            ChartDashboardItem chart = CreateChart(excelDataSource);

            dBoard.Items.Add(chart);
            DateFilterDashboardItem dateFilterItem = CreateDateFilterItem(excelDataSource);

            dBoard.Items.Add(dateFilterItem);
            DashboardItemGroup group = CreateGroup();

            dBoard.Groups.Add(group);
            group.AddRange(dateFilterItem, chart);
            // Create layout tree.
            DashboardLayoutItem  dateFilterLayoutItem = new DashboardLayoutItem(dateFilterItem, 30);
            DashboardLayoutItem  chartLayoutItem      = new DashboardLayoutItem(chart, 70);
            DashboardLayoutGroup groupLayoutItem      = new DashboardLayoutGroup(group, 100);

            groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem);
            DashboardLayoutGroup rootGroup = new DashboardLayoutGroup(null, 100);

            rootGroup.ChildNodes.Add(groupLayoutItem);
            rootGroup.Orientation = DashboardLayoutGroupOrientation.Vertical;
            dBoard.LayoutRoot     = rootGroup;
            dBoard.EndUpdate();
            return(dBoard);
        }
        private void RepositionItems(DashboardToolbarItemClickEventArgs args)
        {
            Dashboard            dashboard = dashboardViewer1.Dashboard;
            DashboardLayoutGroup rootGroup = dashboard.LayoutRoot.ChildNodes[0] as DashboardLayoutGroup;

            if ((rootGroup != null) && (rootGroup.ChildNodes.Count > 1))
            {
                rootGroup.ChildNodes[0].MoveRight(rootGroup.ChildNodes[1]);
            }
        }
        private Dashboard CreateDashboard()
        {
            Dashboard dBoard = new Dashboard();

            OlapConnectionParameters olapParams = new OlapConnectionParameters();

            olapParams.ConnectionString = @"provider=MSOLAP;
                                  data source=http://demos.devexpress.com/Services/OLAP/msmdpump.dll;
                                  initial catalog=Adventure Works DW Standard Edition;
                                  cube name=Adventure Works;";

            DashboardOlapDataSource olapDataSource = new DashboardOlapDataSource(olapParams);

            dBoard.DataSources.Add(olapDataSource);

            CardDashboardItem cardItem = new CardDashboardItem();

            cardItem.DataSource = olapDataSource;
            cardItem.SeriesDimensions.Add(new Dimension("[Sales Territory].[Sales Territory Country].[Sales Territory Country]"));
            cardItem.SparklineArgument = new Dimension("[Date].[Month of Year].[Month of Year]", DateTimeGroupInterval.MonthYear);
            Card card = new Card();

            card.LayoutTemplate = new CardStretchedLayoutTemplate();
            card.ActualValue    = new Measure("[Measures].[Internet Sales Amount]");
            card.TargetValue    = new Measure("[Measures].[Sales Amount]");
            cardItem.Cards.Add(card);

            ChartDashboardItem chartItem = new ChartDashboardItem();

            chartItem.DataSource = olapDataSource;
            chartItem.Arguments.Add(new Dimension("[Sales Territory].[Sales Territory].[Country]"));
            chartItem.Panes.Add(new ChartPane());
            SimpleSeries salesAmountSeries = new SimpleSeries(SimpleSeriesType.Bar);

            salesAmountSeries.Value = new Measure("[Measures].[Sales Amount]");
            chartItem.Panes[0].Series.Add(salesAmountSeries);
            SimpleSeries salesInernetAmountSeries = new SimpleSeries(SimpleSeriesType.Bar);

            salesInernetAmountSeries.Value = new Measure("[Measures].[Internet Sales Amount]");
            chartItem.Panes[0].Series.Add(salesInernetAmountSeries);
            dBoard.Items.AddRange(cardItem, chartItem);

            DashboardLayoutItem  cardLayoutItem  = new DashboardLayoutItem(cardItem);
            DashboardLayoutItem  chartLayoutItem = new DashboardLayoutItem(chartItem);
            DashboardLayoutGroup rootGroup       = new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Vertical,
                                                                            50D, cardLayoutItem, chartLayoutItem);

            dBoard.LayoutRoot = rootGroup;

            return(dBoard);
        }
        private void ChangeLayout(DashboardToolbarItemClickEventArgs args)
        {
            Dashboard dashboard = new Dashboard();

            dashboard.LoadFromXml(@"Data\LayoutUnordered.xml");
            dashboard.BeginUpdate();
            // Switch off the DateFilter item's AutoHeight arrangement mode so that the DateFilter layout does not ignore its layout weight.
            ((DateFilterDashboardItem)(dashboard.Items["dateFilterDashboardItem1"])).ArrangementMode = DateFilterArrangementMode.Horizontal;
            // Hide captions.
            dashboard.Items.ForEach(item => item.ShowCaption  = false);
            dashboard.Groups.ForEach(item => item.ShowCaption = false);
            // Create layout items for the DateFilter and Chart dashboard items.
            DashboardLayoutItem dateFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["dateFilterDashboardItem1"], 13);
            DashboardLayoutItem chartLayoutItem      = new DashboardLayoutItem(dashboard.Items["chartDashboardItem1"], 87);
            // Create a layout item for the dashboard Group item.
            DashboardLayoutGroup groupLayoutItem = new DashboardLayoutGroup()
            {
                Orientation   = DashboardLayoutGroupOrientation.Vertical,
                DashboardItem = dashboard.Groups["dashboardItemGroup1"],
                Weight        = 70
            };

            // Connect layout items in the layout tree.
            groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem);
            // Create a Grid layout item.
            DashboardLayoutItem gridLayoutItem = new DashboardLayoutItem(dashboard.Items["gridDashboardItem1"], 30);
            // Create a group layout item to organize the Grid layout item and a Dashboard Group layout item.
            DashboardLayoutGroup layoutGroup = new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 85);

            // Connect layout items in the layout tree.
            layoutGroup.ChildNodes.AddRange(gridLayoutItem, groupLayoutItem);
            // Create a RangeFilter layout item.
            DashboardLayoutItem rangeFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["rangeFilterDashboardItem1"], 15);
            // Create a root layout group. Its DashboardItem property is null.
            DashboardLayoutGroup rootGroup = new DashboardLayoutGroup()
            {
                Orientation   = DashboardLayoutGroupOrientation.Vertical,
                Weight        = 100,
                DashboardItem = null
            };

            // Connect layout items in the layout tree.
            rootGroup.ChildNodes.AddRange(layoutGroup, rangeFilterLayoutItem);
            // The layout treee is built. Set the dashboard's root layout node to finalize the layout.
            dashboard.LayoutRoot = rootGroup;
            dashboard.EndUpdate();

            dashboardViewer1.Dashboard = dashboard;
        }
        private void btnCreate_Click(object sender, EventArgs e)
        {
            Dashboard dashboard = new Dashboard();
            DashboardObjectDataSource dataSource = new DashboardObjectDataSource(DataGenerator.GenerateTestData());

            dashboard.DataSources.Add(dataSource);

            dashboard.Items.Add(DashboardItemGenerator.GenerateCardItem(dataSource, "card1"));
            dashboard.Items.Add(DashboardItemGenerator.GenerateGridItem(dataSource, "grid1"));
            dashboard.Items.Add(DashboardItemGenerator.GeneratePieItem(dataSource, "pie1"));
            dashboard.Items.Add(DashboardItemGenerator.GenerateListBoxItem(dataSource, "list1"));

            TabContainerDashboardItem tabContainer = new TabContainerDashboardItem();

            tabContainer.ComponentName = "tabContainer1";
            tabContainer.TabPages.Add(new DashboardTabPage()
            {
                Name = "Tab Page One", ComponentName = "page1"
            });
            tabContainer.TabPages["page1"].AddRange(dashboard.Items["grid1"], dashboard.Items["pie1"]);

            DashboardTabPage secondTabPage = tabContainer.CreateTabPage();

            secondTabPage.Name = "Tab Page Two";
            secondTabPage.Add(dashboard.Items["list1"]);
            secondTabPage.ShowItemAsTabPage = true;

            dashboard.Items.Add(tabContainer);

            dashboard.RebuildLayout();
            // Adjust the dashboard layout.
            dashboard.LayoutRoot.FindRecursive(dashboard.Items["grid1"]).Weight = 40;
            dashboard.LayoutRoot.FindRecursive(dashboard.Items["pie1"]).Weight  = 60;
            DashboardLayoutGroup rootGroup = dashboard.LayoutRoot.ChildNodes[0] as DashboardLayoutGroup;

            rootGroup.Orientation = DashboardLayoutGroupOrientation.Horizontal;

            dashboardViewer1.Dashboard = dashboard;

            btnModify.Enabled         = true;
            toggleSwitchTimer.Enabled = true;
        }
Example #8
0
        public static void MergeLayout(DashboardLayoutGroup layoutRoot, string newPageName, DashboardMerger dashboardMerger)
        {
            TabContainerDashboardItem tabContainer             = dashboardMerger.TabContainer;
            Dashboard originalDashboard                        = dashboardMerger.OriginalDashboard;
            IDictionary <string, string> dashboardItemNamesMap = dashboardMerger.DashboardItemNamesMap;
            IDictionary <string, string> groupNamesMap         = dashboardMerger.GroupNamesMap;
            IEnumerable <DashboardItem>  newItems              = dashboardMerger.NewItems;
            DashboardTabPage             newTabPage            = tabContainer.CreateTabPage();
            DashboardLayoutTabPage       layoutPage            = new DashboardLayoutTabPage(newTabPage);

            foreach (DashboardLayoutNode node in layoutRoot.GetNodesRecursive())
            {
                if (node.DashboardItem != null)
                {
                    DashboardItemGroup group = node.DashboardItem as DashboardItemGroup;
                    if (group != null)
                    {
                        string groupComponentName    = group.ComponentName;
                        string newGroupComponentName = String.Empty;
                        if (!groupNamesMap.TryGetValue(group.ComponentName, out newGroupComponentName))
                        {
                            newGroupComponentName = group.ComponentName;
                        }
                        node.DashboardItem = newItems.Single(itm => itm.ComponentName == newGroupComponentName);
                    }
                    else
                    {
                        DashboardItem item        = node.DashboardItem;
                        string        newItemName = String.Empty;
                        if (!dashboardItemNamesMap.TryGetValue(item.ComponentName, out newItemName))
                        {
                            newItemName = item.ComponentName;
                        }
                        node.DashboardItem = newItems.Single(itm => itm.ComponentName == newItemName);
                    }
                }
            }
            layoutPage.ChildNodes.Add(layoutRoot);
            foreach (DashboardItem item in newItems)
            {
                if (item.ParentContainer == null)
                {
                    item.ParentContainer = newTabPage;
                }
                else
                {
                    IDashboardItemContainer container = item.ParentContainer;
                    if (container is DashboardItemGroup)
                    {
                        string newGroupName = String.Empty;
                        if (!groupNamesMap.TryGetValue(container.ComponentName, out newGroupName))
                        {
                            newGroupName = container.ComponentName;
                        }
                        item.ParentContainer = originalDashboard.Groups[newGroupName];
                    }
                    else
                    {
                        item.ParentContainer = newTabPage;
                    }
                }
            }
            DashboardLayoutTabContainer layoutTabContainer = originalDashboard.LayoutRoot.FindRecursive(tabContainer);

            layoutTabContainer.ChildNodes.Add(layoutPage);
            newTabPage.Name = newPageName;
        }