private UIElement CreateControls() { m_menu_main = new Menu(); //////// // File m_menuItem_loadFromDatabase = new MenuItem() { Header = "Load DB" }; m_menuItem_loadFromDatabase.Click += MenuItem_LoadFromDatabase_Click; m_menuItem_exportToXml = new MenuItem() { Header = "Export to Xml" }; m_menuItem_exportToXml.Click += MenuItem_ExportToXml_Click; m_menuItem_importFromXml = new MenuItem() { Header = "Import From Xml" }; m_menuItem_importFromXml.Click += MenuItem_ImportFromXml_Click; m_menuItem_file = new MenuItem() { Header = "File" }; m_menuItem_file.Items.Add(m_menuItem_loadFromDatabase); m_menu_main.Items.Add(m_menuItem_file); //////// // Setup m_menuItem_GameStateOnInitialLoad = new MenuItem() { Header = "Area/Room On Initial Load" }; RoutedEventHandler menuItem_GameStateOnInitialLoad_clickHandler = new RoutedEventHandler((x, y) => { if (m_menuItem_GameStateOnInitialLoad.IsSubmenuOpen) m_menuItem_setup.IsSubmenuOpen = false; }); m_menuItem_GameStateOnInitialLoad.AddHandler(Button.ClickEvent, menuItem_GameStateOnInitialLoad_clickHandler); m_menuItem_GameStateOnInitialLoad.AddHandler(MenuItem.ClickEvent, menuItem_GameStateOnInitialLoad_clickHandler); m_menuItem_setup = new MenuItem() { Header = "Setup" }; m_menuItem_setup.Items.Add(m_menuItem_GameStateOnInitialLoad); //////// // Toolbar DockPanel dockPanel_main = new DockPanel(); dockPanel_main.Children.Add(m_menu_main); DockPanel.SetDock(m_menu_main, Dock.Top); //////// // grid m_grid_main = new Grid(); m_grid_main.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); m_grid_main.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(100.0, GridUnitType.Star) }); m_grid_main.SetGridRowColumn(dockPanel_main, 0, 0); return m_grid_main; }
public static MenuItem Construct(SearchControl sc, MenuItem plainExcelMenuItem) { MenuItem miResult = new MenuItem { Header = ExcelMessage.Reports.NiceToString(), Icon = ExtensionsImageLoader.GetImageSortName("excel.png").ToSmallImage() }; miResult.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler((object sender, RoutedEventArgs e) => { e.Handled = true; if (e.OriginalSource is MenuItem) //Not to capture the mouseDown of the scrollbar buttons { MenuItem b = (MenuItem)e.OriginalSource; Lite<ExcelReportEntity> reportLite = (Lite<ExcelReportEntity>)b.Tag; SaveFileDialog sfd = new SaveFileDialog() { AddExtension = true, DefaultExt = ".xlsx", Filter = ExcelMessage.Excel2007Spreadsheet.NiceToString(), FileName = reportLite.ToString() + " - " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx", OverwritePrompt = true, Title = ExcelMessage.FindLocationFoExcelReport.NiceToString() }; if (sfd.ShowDialog(Window.GetWindow(sc)) == true) { byte[] result = Server.Return((IExcelReportServer r) => r.ExecuteExcelReport(reportLite, sc.GetQueryRequest(true))); File.WriteAllBytes(sfd.FileName, result); System.Diagnostics.Process.Start(sfd.FileName); } } })); Action initialize = null; MenuItem miAdmin = new MenuItem() { Header = "Administrar", Icon = ExtensionsImageLoader.GetImageSortName("folderedit.png").ToSmallImage() }; miAdmin.Click += (object sender, RoutedEventArgs e)=> { var query = QueryClient.GetQuery(sc.QueryName); Finder.Explore(new ExploreOptions(typeof(ExcelReportEntity)) { ShowFilters = false, ShowFilterButton = false, FilterOptions = new List<FilterOption> { new FilterOption { ColumnName = "Query", Operation = FilterOperation.EqualTo, Value = query.ToLite(query.IsNew), Frozen = true } }, Closed = (_, __) => miAdmin.Dispatcher.Invoke(() => initialize()) //Refrescar lista de informes tras salir del administrador }); e.Handled = true; }; initialize = ()=> { miResult.Items.Clear(); List<Lite<ExcelReportEntity>> reports = Server.Return((IExcelReportServer s)=>s.GetExcelReports(sc.QueryName)); if (plainExcelMenuItem != null) { miResult.Items.Add(plainExcelMenuItem); miResult.Items.Add(new Separator()); } miResult.Header = new TextBlock { Inlines = { new Run(ExcelMessage.Reports.NiceToString()), reports.Count == 0? (Inline)new Run(): new Bold(new Run(" (" + reports.Count + ")")) } }; if (reports.Count > 0) { foreach (Lite<ExcelReportEntity> report in reports) { MenuItem mi = new MenuItem() { Header = report.ToString(), Icon = ExtensionsImageLoader.GetImageSortName("excelDoc.png").ToSmallImage(), Tag = report, }; miResult.Items.Add(mi); } } miResult.Items.Add(miAdmin); }; initialize(); return miResult; }