private DashboardItemGroup CreateGroup() { DashboardItemGroup group = new DashboardItemGroup(); group.Name = "Sales by Date"; return(group); }
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); }
static bool ResolveGroupNamesConflict(DashboardItemGroup groupCopy, string originalGroupName, IEnumerable <DashboardItem> toGroups, IDictionary <string, string> groupNamesMap) { // Provide your group component name confilict resolution logic here string newName = NamesGenerator.GenerateName(originalGroupName, 1, toGroups.Select(g => g.ComponentName)); groupNamesMap.Add(originalGroupName, newName); groupCopy.ComponentName = newName; return(true); }
static DashboardItemGroup CreateGroupCopy(DashboardItemGroup group) { DashboardItemGroup groupCopy = new DashboardItemGroup(); groupCopy.InteractivityOptions.IgnoreMasterFilters = group.InteractivityOptions.IgnoreMasterFilters; groupCopy.InteractivityOptions.IsMasterFilter = group.InteractivityOptions.IsMasterFilter; groupCopy.Name = group.Name; groupCopy.ShowCaption = group.ShowCaption; return(groupCopy); }
static void AddGroupCopy(DashboardItemGroup originalGroup, DashboardMerger dashboardMerger, Action <DashboardItemGroup> addGroupDelegate) { DashboardItemGroupCollection toGroups = dashboardMerger.OriginalDashboard.Groups; DashboardItemGroup groupCopy = CreateGroupCopy(originalGroup); if (toGroups.Any(g => g.ComponentName == originalGroup.ComponentName)) { if (ResolveGroupNamesConflict(groupCopy, originalGroup.ComponentName, toGroups, dashboardMerger.GroupNamesMap)) { addGroupDelegate(groupCopy); } } else { addGroupDelegate(groupCopy); } }
public MainWindow() { InitializeComponent(); Dashboard dashboard = new Dashboard(); DashboardItemGroup group = new DashboardItemGroup(); dashboard.Groups.Add(group); dashboard.Items.AddRange( new GridDashboardItem() { Group = group }, new ChartDashboardItem() { Group = group }, new TreemapDashboardItem()); dashboardControl1.Dashboard = dashboard; }
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; }
private static Dashboard CreateDashboard(DashboardSqlDataSource dataSource) { Dashboard dashboard1 = new Dashboard(); dashboard1.DataSources.Add(dataSource); ComboBoxDashboardItem comboBox1 = new ComboBoxDashboardItem() { Name = "Browser", DataSource = dataSource, DataMember = "Statistics", ComboBoxType = ComboBoxDashboardItemType.Checked }; comboBox1.FilterDimensions.Add(new Dimension("Browser")); ListBoxDashboardItem listBox1 = new ListBoxDashboardItem() { Name = "Browser Version", DataSource = dataSource, DataMember = "Statistics" }; listBox1.FilterDimensions.Add(new Dimension("BrowserDetails")); listBox1.InteractivityOptions.IgnoreMasterFilters = false; TreeViewDashboardItem treeView1 = new TreeViewDashboardItem() { Name = "Date", DataSource = dataSource, DataMember = "Statistics", AutoExpandNodes = true }; treeView1.FilterDimensions.AddRange(new Dimension("Date", DateTimeGroupInterval.Year), new Dimension("Date", DateTimeGroupInterval.Quarter)); DashboardItemGroup group1 = new DashboardItemGroup() { Name = "Filters" }; group1.InteractivityOptions.IsMasterFilter = true; dashboard1.Groups.Add(group1); group1.AddRange(comboBox1, treeView1, listBox1); ChartDashboardItem chart1 = new ChartDashboardItem() { Name = "Browser Statistics", DataSource = dataSource, DataMember = "Statistics", }; chart1.Arguments.Add(new Dimension("Date", DateTimeGroupInterval.MonthYear)); chart1.SeriesDimensions.AddRange(new Dimension("Browser"), new Dimension("BrowserDetails")); chart1.Panes.Add(new ChartPane()); SimpleSeries salesAmountSeries = new SimpleSeries(SimpleSeriesType.SplineArea); salesAmountSeries.Value = new Measure("Count"); chart1.Panes[0].Series.Add(salesAmountSeries); dashboard1.Items.Add(chart1); return(dashboard1); }