public NavigationTreePluginModule( IWindowHost windowHost, [Import("navigationMenu", typeof(UserControl))] NavigationTree navTree) { this.windowHost = windowHost; this.navTree = navTree; }
public MainWindowViewModel() { Messenger.Register <ColumnNames>(this, p => { SelectedColumns = string.Join(",", FileColumns.Where(c => c.IsSelected).Select(c => c.Name)); }); NotifyPropertyChanged(nameof(FileColumns)); SingleTree = new NavigationTree(); }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// private void _AddExtensionWidgets() { if (_isExtensionWidgetsLoaded) { return; // only once } Debug.Assert(_app != null); // Initialize first try { // add extension widgets NavigationTree navigationTree = _app.MainWindow.NavigationTree; ICollection <ExtensionWidget> extWidgets = _app.ExtensionWidgets; if ((null != extWidgets) && (0 < extWidgets.Count)) { // find page INavigationItem item = null; if (navigationTree.FindItem(((object)this).GetType(), out item)) { // build page path var pagePath = string.Format(@"{0}\{1}", item.Parent.Name, this.Name); foreach (ExtensionWidget widget in extWidgets) { if (pagePath.Equals(widget.PagePath, StringComparison.OrdinalIgnoreCase)) { // create widget Assembly widgetAssembly = Assembly.LoadFrom(widget.AssemblyPath); var pageWidget = (PageWidget)Activator.CreateInstance(widget.ClassType); pageWidget.Initialize(this); _widgets.Add(pageWidget); } } } } _isExtensionWidgetsLoaded = true; } catch (Exception ex) { Logger.Error(ex); } }
private bool DataIsAccessable(DR_Requester requester, NavigationTree navigationTree) { if (navigationTree.TableDrivedEntityID != null) { if (!bizTableDrivedEntity.DataIsAccessable(requester, navigationTree.TableDrivedEntity)) { return(false); } } var category = (DatabaseObjectCategory)Enum.Parse(typeof(DatabaseObjectCategory), navigationTree.Category); if (category == DatabaseObjectCategory.Report) { if (!bizEntityReport.DataIsAccessable(requester, navigationTree.ItemIdentity)) { return(false); } } if (category == DatabaseObjectCategory.Letter) { if (!bizTableDrivedEntity.DataIsAccessable(requester, navigationTree.TableDrivedEntity, new List <SecurityAction>() { SecurityAction.LetterView, SecurityAction.LetterEdit })) { return(false); } } if (category == DatabaseObjectCategory.Archive) { if (!bizTableDrivedEntity.DataIsAccessable(requester, navigationTree.TableDrivedEntity, new List <SecurityAction>() { SecurityAction.ArchiveView, SecurityAction.ArchiveEdit })) { return(false); } } return(true); }
private void CheckAddItems(List <NavigationItemDTO> items, NavigationItemDTO parentItem, NavigationTree parentDBItem, DataAccess.MyProjectEntities projectContext) { foreach (var item in items.Where(x => x.ParentItem == parentItem)) { NavigationTree dbItem = null; if (item.ID != 0) { dbItem = projectContext.NavigationTree.First(x => x.ID == item.ID); } else { dbItem = new NavigationTree(); projectContext.NavigationTree.Add(dbItem); } dbItem.Category = item.ObjectCategory.ToString(); dbItem.ItemTitle = item.Title; dbItem.Tooltip = item.Tooltip; dbItem.Name = item.Name; dbItem.ItemIdentity = item.ObjectIdentity; if (item.TableDrivedEntityID != 0) { dbItem.TableDrivedEntityID = item.TableDrivedEntityID; } else { dbItem.TableDrivedEntityID = null; } //if (item.EntityReportID != 0) // dbItem.EntityReportID = item.EntityReportID; //else // dbItem.EntityReportID = null; //if (item.ObjectCategory == DatabaseObjectCategory.Entity) // dbItem.TableDrivedEntityID = Convert.ToInt32(item.ObjectIdentity); //else if (item.ObjectCategory == DatabaseObjectCategory.Report) // dbItem.EntityReportID = Convert.ToInt32(item.ObjectIdentity); dbItem.NavigationTree2 = parentDBItem; CheckAddItems(items, item, dbItem, projectContext); } }
private void ToNavigationTreeDTO(DR_Requester requester, List <ModelEntites.NavigationItemDTO> treeItems, NavigationTree item, NavigationItemDTO parentNavigationItem, bool withChilds) { //if (item.TableDrivedEntityID != null) //{ // var entityEnabled = bizTableDrivedEntity.IsEntityEnabled(item.TableDrivedEntityID.Value); // if (!entityEnabled) // return; //} var result = new NavigationItemDTO(); result.ID = item.ID; result.ParentID = item.ParentID; result.ObjectIdentity = item.ItemIdentity; result.Title = item.ItemTitle; result.TableDrivedEntityID = item.TableDrivedEntityID ?? 0; result.Tooltip = item.Tooltip; result.Name = item.Name; result.ObjectCategory = (DatabaseObjectCategory)Enum.Parse(typeof(DatabaseObjectCategory), item.Category); result.ParentItem = parentNavigationItem; //if (!plainItems.Any(x => x.ObjectIdentity == item.ItemIdentity && x.ObjectCategory.ToString() == item.Category)) //{ // var plainItem = new PlainNavigationDTO(); // plainItem.ObjectCategory = (DatabaseObjectCategory)Enum.Parse(typeof(DatabaseObjectCategory), item.Category); // plainItem.ObjectIdentity = item.ItemIdentity; // if (item.TableDrivedEntityID != null) // plainItem.SecurityObjectID = item.TableDrivedEntityID.Value; // else if (item.EntityReportID != null) // plainItem.SecurityObjectID = item.EntityReportID.Value; // plainItems.Add(plainItem); //} treeItems.Add(result); if (withChilds) { //result.ChildItems = new List<NavigationItemDTO>(); foreach (var citem in item.NavigationTree1) { if (DataIsAccessable(requester, citem)) { ToNavigationTreeDTO(requester, treeItems, citem, result, true); } } } }