private void ImageWorkSpace_WorkspaceTabClosing(object sender, CancelEventArgs e) { e.Cancel = false; CustomDialogResults result = MessageBoxService.ShowYesNo("Are you sure you want to close this tab?", CustomDialogIcons.Question); //if user did not want to cancel, keep workspace open if (result == CustomDialogResults.No) { e.Cancel = true; } //otherwise close workspace, and make sure to unhook WorkspaceTabClosing event //to prevent memory leak else { ((WorkspaceData)sender).WorkspaceTabClosing -= ImageWorkSpace_WorkspaceTabClosing; } }
/// <summary> /// Creates and returns the menu items /// </summary> private List <CinchMenuItem> CreateMenus() { List <CinchMenuItem> menu = new List <CinchMenuItem>(); // create the File Menu var miFile = new CinchMenuItem("File"); menu.Add(miFile); var miExit = new CinchMenuItem("Exit") { IconUrl = @"/XRMS.Presentation;component/Images/Exit.png" }; miExit.Command = new SimpleCommand <object, object>((x) => { if (MessageBoxService.ShowYesNo( "Would you like to exit application", CustomDialogIcons.Question) == CustomDialogResults.Yes) { Application.Current.Shutdown(0); } }); miFile.Children.Add(miExit); // create the Managements Menu var miManagement = new CinchMenuItem("Managements"); menu.Add(miManagement); switch ((Role)MainUser.RoleId) { case Role.Manager: { CinchMenuItem miInfo = new CinchMenuItem("Restaurant Info") { IconUrl = @"/XRMS.Presentation;component/Images/RestaurantInfo.png" }; miInfo.Command = new SimpleCommand <object, object>((x) => { try { if (RestaurantInfo == null) { throw new ArgumentNullException("RestaurantInfo"); } RestaurantInfoViewModel restaurantViewModel = new RestaurantInfoViewModel(this.MessageBoxService, RestaurantInfo, (IRestaurantManager)_restaurantManager); // open dialog and return result when it is closed bool?result = this.UIVisualizerService.ShowDialog("RestaurantInfoPopup", restaurantViewModel); // code to check result } catch (Exception ex) { throw ex; } }); miManagement.Children.Add(miInfo); CinchMenuItem miUsers = new CinchMenuItem("Users") { IconUrl = @"/XRMS.Presentation;component/Images/User.png" }; miUsers.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/User.png", "UsersManagementView", null, "Users Management", true); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miUsers); CinchMenuItem miTables = new CinchMenuItem("Tables") { IconUrl = @"/XRMS.Presentation;component/Images/Table.png" }; miTables.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/Table.png", "TablesManagementView", null, "Tables Management", true); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miTables); CinchMenuItem miProducts = new CinchMenuItem("Products") { IconUrl = @"/XRMS.Presentation;component/Images/Product.png" }; miProducts.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/Product.png", "ProductsManagementView", null, "Products Management", true); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miProducts); CinchMenuItem miMaterials = new CinchMenuItem("Materials") { IconUrl = @"/XRMS.Presentation;component/Images/Material.png" }; miMaterials.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/Material.png", "MaterialsManagementView", null, "Materials Management", true); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miMaterials); CinchMenuItem miCashierOrders = new CinchMenuItem("Cashier Orders") { IconUrl = @"/XRMS.Presentation;component/Images/Cashier.png" }; miCashierOrders.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/Cashier.png", "CashierOrdersView", null, "Orders Management", false); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miCashierOrders); CinchMenuItem miKitchenOrders = new CinchMenuItem("Kitchen Orders") { IconUrl = @"/XRMS.Presentation;component/Images/Kitchen.png" }; miKitchenOrders.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/Kitchen.png", "KitchenOrdersView", null, "Kitchen Management", true); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miKitchenOrders); } break; case Role.Cashier: { CinchMenuItem miCashierOrders = new CinchMenuItem("Cashier Orders") { IconUrl = @"/XRMS.Presentation;component/Images/Cashier.png" }; miCashierOrders.Command = new SimpleCommand <object, object>((x) => { WorkspaceData workspace = new WorkspaceData(@"/XRMS.Presentation;component/Images/Cashier.png", "CashierOrdersView", null, "Orders Management", false); WorkspaceData availableView = FindAvailableView(workspace); if (availableView == null) { Views.Add(workspace); SetActiveWorkspace(workspace); } else { SetActiveWorkspace(availableView); } }); miManagement.Children.Add(miCashierOrders); } break; } /*CinchMenuItem menuImages = new CinchMenuItem("ImageLoaderView"); * menuImages.Command = new SimpleCommand<object, object>((x) => * { * String imagePath = ConfigurationManager.AppSettings["YourImagePath"].ToString(); * * WorkspaceData workspaceImages = new WorkspaceData(@"/XRMS.Presentation;component/Images/imageIcon.png", * "ImageLoaderView", imagePath, "Image View", true); * workspaceImages.WorkspaceTabClosing += ImageWorkSpace_WorkspaceTabClosing; * * Views.Add(workspaceImages); * ShowContextMenu = false; * }); * menuActions.Children.Add(menuImages);*/ return(menu); }