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; }
void MoveRootToTabPage(DashboardLayoutTabPage layoutPage) { DashboardLayoutGroup rootGroup = TargetDashboard.LayoutRoot; TargetDashboard.LayoutRoot = null; layoutPage.ChildNodes.Add(rootGroup); }
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; }
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; }