示例#1
0
        private DashboardItemGroup CreateGroup()
        {
            DashboardItemGroup group = new DashboardItemGroup();

            group.Name = "Sales by Date";
            return(group);
        }
示例#2
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);
        }
        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);
            }
        }
示例#6
0
        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;
        }
示例#7
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;
        }
示例#8
0
        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);
        }