public JsonResult Tree(int id) { var root = new TreeViewModel { data = "Root Node", metadata = new Dictionary<string, string> { { "id", "1" } } }; var top = new TreeViewModel { data = "top", metadata = new Dictionary<string, string> { { "id", "2" } }, children = new List<TreeViewModel>() }; var middle = new TreeViewModel { data = "middle", metadata = new Dictionary<string, string> { { "id", "3" } } , children = new List<TreeViewModel>() }; root.children = new List<TreeViewModel> { top, middle }; return Json(root, JsonRequestBehavior.AllowGet); }
private ReferenceObject syncComposition(TreeViewModel pe_treeItem, bool IsCopyRes, bool IsCopyOnlyPlan /*, ref int amountAddObjects*/) { #region //Объект для синхронизации if (pe_treeItem.IsObjectToSync /* && (bool)pe_treeItem.IsSelectObjToSynch*/) { /* Если синхронизация отсутствует, то создаём новую работу в плане РП * в синхронизированной с Текущей и устанавливаем синхронизацию с дочерней из плана детализации. */ ClassObject TypePE = pe_treeItem.ProjectElement.Class; List <Guid> GuidsLinks = new List <Guid>() { new Guid("063df6fa-3889-4300-8c7a-3ce8408a931a"), new Guid("68989495-719e-4bf3-ba7c-d244194890d5"), new Guid("751e602a-3542-4482-af40-ad78f90557ad"), new Guid("df3401e2-7dc6-4541-8033-0188a8c4d4bf"), new Guid("58d2e256-5902-4ed4-a594-cf2ba7bd4770") , new Guid("0e1f8984-5ebe-4779-a9cd-55aa9c984745"), new Guid("79b01004-3c10-465a-a6fb-fe2aa95ae5b8") , new Guid("339ffc33-55b2-490f-b608-a910c1f59f51") }; var newPE = ProjectManagementWork.CopyPE(pe_treeItem.ProjectElement, pe_treeItem.PEForSync, GuidsLinks); if (newPE != null) { //amountAddObjects++; ProjectManagementWork.RecalcResourcesWorkLoad(newPE); if (IsCopyRes) { ProjectManagementWork.СкопироватьИспользуемыеРесурсы_изЭлементаПроекта_вЭлементПроекта (newPE, pe_treeItem.ProjectElement, onlyPlanningRes: IsCopyOnlyPlan, PlanningSpaceForNewRes_Guid: ProjectManagementWork.GetProject(newPE)[ProjectManagementWork.PM_param_PlanningSpace_GUID].GetGuid()); } Synchronization.SyncronizeWorks(newPE, pe_treeItem.ProjectElement); return(newPE); } } #endregion return(null); }
public List <TreeViewModel> GetEnergyItemTreeViewList(string buildId) { List <TreeViewModel> treeViewModel = new List <TreeViewModel>(); SqlParameter[] sqlParameters = { new SqlParameter("@BuildID", buildId) }; List <EnergyItemInfo> energyItemInfos = _db.Database.SqlQuery <EnergyItemInfo>(EnergyItemTreeViewResources.EnergyItemTreeViewSQL, sqlParameters).ToList(); foreach (var item in energyItemInfos) { EnergyItemInfo info = energyItemInfos.Find(e => e.EnergyItemCode == item.ParentItemCode); if (info == null) { TreeViewModel parent = new TreeViewModel(); List <TreeViewModel> children = GetChildrenNodes(energyItemInfos, item); parent.Id = item.FormulaID; parent.Text = item.EnergyItemName; if (children.Count != 0) { parent.Nodes = children; } treeViewModel.Add(parent); } } //var parentItemCodes = energyItemInfos.Where(c => (c.ParentItemCode == "-1" || string.IsNullOrEmpty(c.ParentItemCode))); //foreach (var item in parentItemCodes) //{ // TreeViewModel parentNode = new TreeViewModel(); // List<TreeViewModel> children = GetChildrenNodes(energyItemInfos, item); // parentNode.Id = item.EnergyItemCode; // parentNode.Text = item.EnergyItemName; // if (children.Count != 0) // parentNode.Nodes = children; // treeViewModel.Add(parentNode); //} return(treeViewModel); }
public static List <TreeViewModel> LoadSFTPFolders(string host, int port, string username, string password) { List <TreeViewModel> finalObjList = new List <TreeViewModel>(); using (SftpClient sftp = new SftpClient(host, port, username, password)) { try { sftp.Connect(); var files = sftp.ListDirectory("/"); var filteredList = files.Where(item => item.IsDirectory).ToList(); foreach (Renci.SshNet.Sftp.SftpFile folder in filteredList) { TreeViewModel obj = new TreeViewModel(); //push folder into final list obj.Value = folder.Name; obj.Children = GetDirectorties(sftp, folder.FullName); finalObjList.Add(obj); } sftp.Disconnect(); } catch (SshConnectionException connExp) { //throw connExp; return(null); } catch (SshAuthenticationException authExp) { //throw authExp; return(null); } catch (System.Net.Sockets.SocketException socketExp) //When host is wrong or not accissible { //throw socketExp; return(null); } catch (Exception e) { //throw e; return(null); } } return(finalObjList); }
public ActionResult GetPermissionTree(string roleId) { var moduledata = moduleApp.GetList(); var buttondata = moduleButtonApp.GetList(); var authorizedata = new List<RoleAuthorizeEntity>(); if (!string.IsNullOrEmpty(roleId)) { authorizedata = roleAuthorizeApp.GetList(roleId); } var treeList = new List<TreeViewModel>(); foreach (ModuleEntity item in moduledata) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = moduledata.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; tree.id = item.F_Id; tree.text = item.F_FullName; tree.value = item.F_EnCode; tree.parentId = item.F_ParentId; tree.isexpand = true; tree.complete = true; tree.showcheck = true; tree.checkstate = authorizedata.Count(t => t.F_ItemId == item.F_Id); tree.hasChildren = true; tree.img = item.F_Icon == "" ? "" : item.F_Icon; treeList.Add(tree); } foreach (ModuleButtonEntity item in buttondata) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = buttondata.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; tree.id = item.F_Id; tree.text = item.F_FullName; tree.value = item.F_EnCode; tree.parentId = item.F_ParentId == "0" ? item.F_ModuleId : item.F_ParentId; tree.isexpand = true; tree.complete = true; tree.showcheck = true; tree.checkstate = authorizedata.Count(t => t.F_ItemId == item.F_Id); tree.hasChildren = hasChildren; tree.img = item.F_Icon == "" ? "" : item.F_Icon; treeList.Add(tree); } return Content(treeList.TreeViewJson()); }
public ActionResult LazyGet(int parentId) { KnowledgeBll knowledgeBll = new KnowledgeBll(); var source = knowledgeBll.GetLazyTree(parentId); List <TreeViewModel> trees = new List <TreeViewModel>(); foreach (var item in source) { TreeViewModel model = new TreeViewModel(); model.nodeid = item.Ykl_Id.ToString(); model.text = item.Ykl_Name; model.hasChildrenField = item.Ykl_IsLeaf; model.nodes = item.Ykl_IsLeaf ? new List <TreeViewModel>() : null; trees.Add(model); } trees = GetTrees(trees); return(Json(new { Data = trees }, JsonRequestBehavior.AllowGet)); }
public ActionResult GetProjectsTreeSelectJson() { var data = projectsApp.GetList(); var treeList = new List <TreeViewModel>(); foreach (ProjectsEntity item in data) { TreeViewModel tree = new TreeViewModel(); tree.id = item.F_Id; tree.text = item.F_ProjectName; tree.value = item.F_Id; tree.parentId = "0"; tree.isexpand = true; tree.complete = true; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
/// <summary> /// 获取树形结构JSon /// </summary> /// <param name="data">数据对象集合</param> /// <returns></returns> protected virtual string GetTreeJsonStr(List <ItemsGetDto> data) { var treeList = new List <TreeViewModel>(); foreach (ItemsGetDto item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.ParentId == item.Id) == 0 ? false : true; tree.id = item.Id; tree.text = item.FullName; tree.value = item.EnCode; tree.parentId = item.ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(TreeViewJson(treeList)); }
private List <TreeViewModel> ConvertTreeData(List <MenuInfoModel> menuList) { List <TreeViewModel> treeList = new List <TreeViewModel>(); foreach (var item in menuList) { TreeViewModel model = new TreeViewModel() { TreeID = item.MenuInfoID, TreeName = item.MenuName, TreeUrl = item.Url, ParentID = item.ParentID, OrderNO = item.OrderNO, Icon = item.Icon, Spread = item.Spread }; } return(treeList); }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { UA_UserID.txt_Content.Focus(); //將游標指定在userID位置 List <UASFNC> FunctionCodeList = app.ObjCacheManager.GetFunctionCodes(); //updateUserGroupTreeView(userFuncList); tV_Permission.ItemsSource = TreeViewModel.SetTree("Select All", FunctionCodeList); tV_Permission.Height = 445; } catch (Exception ex) { logger.Error(ex, "Exception"); } }
public static string UpdateTree(TreeViewModel model) { if (model == null) { return(string.Empty); } var result = new StringBuilder(model.Nodes?.Count ?? 0); if (model.Nodes != null) { foreach (var(_, node) in model.Nodes) { result.Append(Recursion(node)); } } return(result.ToString()); }
public NUnitRunnerViewModel(TApp uiApplication) { InitialHeight = 500; InitialWidth = 800; DisplayName = "Test Runner"; mUiApplication = uiApplication; Tree = new TreeViewModel(); Tree.PropertyChanged += (o, args) => OnPropertyChangedAll(); //求解程序集 //AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; if (!string.IsNullOrEmpty(Properties.Settings.Default.AssemblyPath)) { LoadAssembly(Properties.Settings.Default.AssemblyPath); } }
private void LoadData() { var list1 = new PatientsList(); list1.Patients.Add(new Patient { ID = 44, Name = "Ben Garsia", Year = 1985 }); list1.Patients.Add(new Patient { ID = 22, Name = "Melisa Mayer", Year = 1968 }); list1.Patients.Add(new Patient { ID = 33, Name = "Morgan Smith", Year = 1979 }); var root = new TreeViewModel(); root.Add(list1); Tree.Add(root); }
//loading FTP Directories recursively private static List <TreeViewModel> GetFTPDirectorties(FtpClient ftp, string folderPath) { List <TreeViewModel> newList = new List <TreeViewModel>(); var files = ftp.GetListing(folderPath, FtpListOption.Recursive); var newFolderList = files.Where(item => item.Type == FtpFileSystemObjectType.Directory).ToList(); if (newFolderList.Count > 0) { foreach (FtpListItem folder in newFolderList) { TreeViewModel t = new TreeViewModel(); //push folder into final list t.Value = folder.Name; t.Children = GetFTPDirectorties(ftp, folder.FullName); newList.Add(t); } } return(newList); }
public ActionResult Create(TreeViewModel obj) { try { // TODO: Add insert logic here Tree t1 = new Tree(); t1.leaves = obj.leaves; t1.nodes = obj.nodes; t1.branches = obj.branches; TreeEntities t2 = new TreeEntities(); t2.Trees.Add(t1); t2.SaveChanges(); return(RedirectToAction("Index")); } catch { return(View()); } }
public void TestAdapteeWithJustRoot() { var treeView = new MyTreeView(); //has a root MyNode var treeViewModel = new TreeViewModel(); var treeViewWithSelection = new TreeViewWithSelection(treeView); treeViewModel.Adaptee = treeViewWithSelection; treeViewModel.AutoExpand = AutoExpandMode.Disabled; treeViewModel.ShowRoot = true; treeViewModel.CollapseAll(); treeViewModel.ExpandAll(); var expandedItem = treeViewModel.GetExpandedItems().First(); Assert.AreEqual(expandedItem, treeView.Root); Assert.AreEqual(treeViewWithSelection, treeViewModel.Adaptee); Assert.AreEqual(treeViewModel.AutoExpand, AutoExpandMode.Disabled); Assert.IsTrue(treeViewModel.ShowRoot); }
public ActionResult GetTreeJson() { var data = itemsApp.GetList(); var treeList = new List<TreeViewModel>(); foreach (ItemsEntity item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; tree.id = item.F_Id; tree.text = item.F_FullName; tree.value = item.F_EnCode; tree.parentId = item.F_ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return Content(treeList.TreeViewJson()); }
/// <summary> /// 获取树形结构JSon /// </summary> /// <param name="data">数据对象集合</param> /// <returns></returns> protected virtual string GetTreeJsonStr <ST>(List <ST> data) where ST : AppBaseEntity { var treeList = new List <TreeViewModel>(); foreach (ST item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) == 0 ? false : true; tree.id = item.F_Id; tree.text = item.F_FullName; tree.value = item.F_EnCode; tree.parentId = item.F_ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(treeList.TreeViewJson()); }
public ActionResult Create([Bind(Include = "NodeName")] TreeViewModel treeViewModel) { string message = ""; if (ModelState.IsValid) { db.TreeViewModels.Add(treeViewModel); db.SaveChanges(); message = "Success"; } else { message = "Create Unsuccessful"; } return(new JsonResult { Data = new { message = message } }); }
public async Task <IActionResult> GetCloneButtonTreeJson() { var moduledata = await _moduleApp.GetList(); var buttondata = await _moduleButtonApp.GetList(); var treeList = (from item in moduledata let hasChildren = moduledata.Any(t => t.F_ParentId == item.F_Id) select new TreeViewModel { id = item.F_Id, text = item.F_FullName, value = item.F_EnCode, parentId = item.F_ParentId, isexpand = true, complete = true, hasChildren = true }).ToList(); foreach (var item in buttondata) { var hasChildren = buttondata.Any(t => t.F_ParentId == item.F_Id); var tree = new TreeViewModel { id = item.F_Id, text = item.F_FullName, value = item.F_EnCode, parentId = item.F_ParentId == "0" ? item.F_ModuleId : item.F_ParentId, isexpand = true, complete = true, showcheck = true, hasChildren = hasChildren }; if (item.F_Icon != "") { tree.img = item.F_Icon; } treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public TreeViewModelTest() { //Mock ISO rootISOMock = new Mock <ISerializableObject>(); rootISOMock.Setup(o => o.Rowguid).Returns(Guid.NewGuid()); _rootISO = rootISOMock.Object; //VM returned for the above ISO rootVMMock = new Mock <IISOViewModel>(); rootVMMock.Setup(o => o.Parent).Returns(() => null); rootVMMock.Setup(o => o.Name).Returns(_rootISOName).Verifiable(); rootVMMock.Setup(o => o.Icon).Returns(ISOIcon.Agent).Verifiable(); rootVMMock.Setup(o => o.Rowguid).Returns(_rootISO.Rowguid); storeMock = new Mock <IISOViewModelStore>(); storeMock.Setup(s => s.addOrRetrieveVMForISO(_rootISO)).Returns(rootVMMock.Object).Verifiable(); _store = storeMock.Object; _tree = new TreeViewModel(_store); }
public ActionResult GetTreeJson() { var data = SysBLL.Instance.GetALL <MDMTypeEntity>(); var treeList = new List <TreeViewModel>(); foreach (var item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.ParentID == item.ID) == 0 ? false : true; tree.id = item.ID.ToString(); tree.text = item.TypeName; tree.value = item.TypeValue; tree.parentId = item.ParentID.ToString(); tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public ActionResult GetTreeJson() { var data = organizeApp.GetList(OperatorProvider.Provider.GetCurrent().CompanyId); var treeList = new List <TreeViewModel>(); foreach (OrganizeEntity item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.F_ParentId == item.F_Id) != 0; tree.id = item.F_Id; tree.text = item.F_FullName; tree.value = item.F_EnCode; tree.parentId = item.F_ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public ActionResult GetTreeJson() { var data = dictService.GetList(); var treeList = new List <TreeViewModel>(); foreach (DictGridDto dict in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.ParentId == dict.Id) == 0 ? false : true; tree.id = dict.Id.ToString(); tree.text = dict.FullName; tree.value = dict.EnCode; tree.parentId = dict.ParentId.ToString(); tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public ActionResult GetTreeJson() { var data = AD.IQueryable().ToList(); var treeList = new List <TreeViewModel>(); foreach (ADModel item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.APID == item.AID) == 0 ? false : true; tree.id = item.AID.ToString(); tree.text = item.AName; tree.value = item.AID.ToString(); tree.parentId = item.APID.ToString(); tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public ActionResult GetTreeJson() { var category = Business.SysBLL.Instance.GetALL <Model.CategoryEntity>(); var treeList = new List <TreeViewModel>(); foreach (var item in category) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = category.Count(t => t.ParentCategoryID == item.ID) == 0 ? false : true; tree.id = item.ID.ToString(); tree.text = item.Category; tree.value = item.ID.ToString(); tree.parentId = item.ParentCategoryID.ToString(); tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public ActionResult GetTreeJson(string sysTempletId) { var data = sysColumnsApp.GetListBySysTempletId(sysTempletId); var treeList = new List <TreeViewModel>(); foreach (SysColumnsEntity item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.ParentId == item.Id) == 0 ? false : true; tree.id = item.Id; tree.text = item.FullName; tree.value = item.Type.ToString(); tree.parentId = item.ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
public ActionResult GetTreeJson(string FOrganize) { var data = positionApp.GetEntitys(FOrganize); var treeList = new List <TreeViewModel>(); foreach (PositionEntity item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.FParentID == item.FId) == 0 ? false : true; tree.id = item.FId; tree.text = item.FShortName; tree.value = item.FNumber; tree.parentId = item.FParentID; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
private List <TreeViewModel> GetNodes(int id, List <ConfigInfo> configs) { List <TreeViewModel> treeViewModels = new List <TreeViewModel>(); List <ConfigInfo> nodeconfigs = configs.Where(w => w.ParentId == id).ToList(); foreach (var item in nodeconfigs) { TreeViewModel treeViewModel = new TreeViewModel { Id = item.Id, Code = item.Code, NodeId = item.Id, Text = item.Name, Nodes = GetNodes(item.Id, configs) }; treeViewModels.Add(treeViewModel); } return(treeViewModels.Count == 0 ? null : treeViewModels); }
public ActionResult GetTreeJson() { var data = _Service.GetList(); var treeList = new List <TreeViewModel>(); foreach (SysOrganize item in data) { TreeViewModel tree = new TreeViewModel(); bool hasChildren = data.Count(t => t.ParentId == item.Id) == 0 ? false : true; tree.id = item.Id; tree.text = item.FullName; tree.value = item.EnCode; tree.parentId = item.ParentId; tree.isexpand = true; tree.complete = true; tree.hasChildren = hasChildren; treeList.Add(tree); } return(Content(treeList.TreeViewJson())); }
private void OpenCommandHandler() { try { var path = FileDialogInstance.Raise(); var rootStorage = PluginManager?.FetchPlugins(path); if (rootStorage == null) { PLogger.Log("Storage Ptr is Zero..."); return; } Utilities.RunDispatcherTask(() => { TreeViewModel.AddElementBack(Utilities.FormNodeFromStorage(rootStorage)); }); } catch (Exception ex) { MessageBoxInstance.Raise(ex.Message); } }
private void UpdateList() { if (ErrorInfoList == null) ErrorInfoList = new TreeViewModel(); ErrorInfoList.SingleIconSelector = i => { var item = i as ErrorInfo; if (item == null) return "DotIcon"; if (item.Siverity == ValidatorType.Error) return "ErrorIcon_Micro"; if (item.Siverity == ValidatorType.Warning) return "WarningIcon_Micro"; return "DotIcon"; }; ErrorInfoList.Data = ErrorInfo.OfType<IItem>().ToList(); ErrorInfoList.Submit = i => { var bp = i as ErrorInfo; if (bp != null && bp.SourceNode != null) { Execute(new NavigateToNodeCommand() { Node = bp.SourceNode, Select = true }); } }; }
private void UpdateList() { if (NavHistoryTree == null) NavHistoryTree = new TreeViewModel(); NavHistoryTree.SingleIconSelector = i => { var nhi = i as NavHistoryItem; if (nhi != null && nhi.IsActive) return "ForwardIcon"; return "DotIcon"; }; NavHistoryTree.Data = NavHistoryItems.OrderBy(i=>i.Time).OfType<IItem>().ToList(); NavHistoryTree.Submit = i => { var bp = i as NavHistoryItem; if (bp != null) { Execute(new NavigateByHistoryItemCommand() { Item = bp, }); } }; }
private async Task<TreeViewModel> GetTree() { var tree = new TreeViewModel(); var accountData = await _swiftService.GetAccount(); if (accountData.IsSuccess) { if (accountData.Containers != null) { tree.nodes = new List<TreeViewModel>(); var tasks = new List<Task<TreeViewModel>>(); foreach (var container in accountData.Containers) { tasks.Add(GetContainerBranch(container.Container)); } await Task.WhenAll(tasks).ContinueWith((rsp) => { tree.nodes.AddRange(rsp.Result); }); } } return tree; }
public void DrawActionsExplorer(Rect obj) { if(ActionsViewModel.IsDirty) ActionsViewModel.Refresh(); var mainContentBounds = obj.Pad(0, 0, 0, 30); var listRect = mainContentBounds.LeftHalf(); var actionCode = mainContentBounds.RightHalf().BottomHalf(); Signal<IDrawTreeView>(_=>_.DrawTreeView(listRect.PadSides(15),ActionsViewModel,(m,i)=>{})); //var selectedAction = ActionsViewModel.SelectedData as ActionNode; var item = ActionsViewModel.SelectedData; if (item != null) { PlatformDrawer.DrawStretchBox(actionCode, CachedStyles.WizardSubBoxStyle, 15); PlatformDrawer.DrawLabel(actionCode.PadSides(15), string.Format("Title: {0}\nType: {1}\n", item.Title, item.GetType().Name) , CachedStyles.BreadcrumbTitleStyle, DrawingAlignment.TopLeft); } var updateButton = new Rect().WithSize(80, 24).InnerAlignWithBottomLeft(obj); PlatformDrawer.DoButton(updateButton,"Update",ElementDesignerStyles.ButtonStyle, () => { EditorApplication.delayCall += () => { ActionsViewModel = null; DataItems = null; }; }); PlatformDrawer.DrawTextbox("12345", new Rect().WithSize(120, 24).Align(updateButton).RightOf(updateButton), _searchCriterial, GUI.skin.textField, (a,b) => { if( _searchCriterial == a) return; _searchCriterial = a; if (!string.IsNullOrEmpty(_searchCriterial)) { ActionsViewModel.Predicate = i => { if (string.IsNullOrEmpty(i.Title)) return false; if ( CultureInfo.CurrentCulture.CompareInfo.IndexOf(i.Title, _searchCriterial, CompareOptions.IgnoreCase) != -1) return true; if (!string.IsNullOrEmpty(i.SearchTag) && CultureInfo.CurrentCulture.CompareInfo.IndexOf(i.SearchTag, _searchCriterial, CompareOptions.IgnoreCase) != -1) return true; return false; }; } else { ActionsViewModel.Predicate = null; } ActionsViewModel.IsDirty = true; }); }
private List<TreeViewModel> GetObjectBranch(string containerId, string prefixObj, List<string> objectIds) { var prefixes = objectIds.Select(x => x.Split('\\')[0]).Distinct().ToList(); List<TreeViewModel> result = null; if (prefixes.Any()) { result = new List<TreeViewModel>(); foreach (var prefix in prefixes) { var newPrefix = !string.IsNullOrEmpty(prefixObj) ? prefixObj + "\\" + prefix : prefix; var tree = new TreeViewModel { objectId = newPrefix, containerId = containerId, text = prefix }; var prefixedObjs = objectIds.Where(x => x.StartsWith(prefix + "\\")).Select(x => x.Split(new[] { '\\' }, 2)[1]).ToList(); tree.nodes = GetObjectBranch(containerId, newPrefix, prefixedObjs); if (tree.nodes == null) { tree.isExpandable = false; if (tree.objectId.EndsWith(".mp4")) { tree.isVideo = true; } else { tree.isFile = true; } } else { tree.isExpandable = true; } result.Add(tree); } } return result; }
public void DrawTreeView(Rect bounds, TreeViewModel viewModel, Action<Vector2, IItem> itemClicked, Action<Vector2, IItem> itemRightClicked = null) { var boundY = bounds.height; if (Event.current != null && Event.current.isKey && Event.current.rawType == EventType.KeyUp) { switch (Event.current.keyCode) { case KeyCode.UpArrow: viewModel.MoveUp(); break; case KeyCode.DownArrow: viewModel.MoveDown(); break; case KeyCode.RightArrow: { var selectedContainer = viewModel.SelectedData as ITreeItem; if (selectedContainer != null) { selectedContainer.Expanded = true; viewModel.IsDirty = true; } } break; case KeyCode.LeftArrow: { var selectedContainer = viewModel.SelectedData as ITreeItem; if (selectedContainer != null) { selectedContainer.Expanded = false; viewModel.IsDirty = true; } } break; case KeyCode.Return: if(viewModel!= null) viewModel.InvokeSubmit(); break; default: break; } } // PlatformDrawer.DrawLabel(new Rect().WithSize(100,100).InnerAlignWithBottomRight(bounds),"Total height: {0}, Total Items: {1}"); var dirty = false; var position = bounds; var usedRect = position.WithWidth(Math.Max(bounds.width, PlatformDrawer.CalculateTextSize(viewModel.LargestString,CachedStyles.ListItemTitleStyle).x+5*viewModel.MaxIdentLevel)).Pad(0, 0, 15, 0).WithHeight(ItemHeight * viewModel.TreeData.Count(s => s.Visible)); PlatformDrawer.DrawStretchBox(position.PadSides(-1),CachedStyles.WizardListItemBoxStyle,10); viewModel.Scroll = GUI.BeginScrollView(position, viewModel.Scroll, usedRect); var itemTemplateRect = bounds.WithHeight(ItemHeight); bool hasItems = false; foreach (var treeViewItem in viewModel.TreeData) { if (!treeViewItem.Visible) continue; hasItems = true; var data = treeViewItem.Data; var treeData = data as ITreeItem; var itemRect = itemTemplateRect.Pad(5*treeViewItem.Indent, 0, 5*treeViewItem.Indent, 0); var localItemY = itemRect.Translate(0, -position.yMin).y; if (localItemY > (viewModel.Scroll.y + position.height)) break; var imageRect = new Rect().WithSize(12, 12) .Align(itemRect) .AlignHorisonallyByCenter(itemRect) .Translate(5, 0); var labelRect = itemRect.WithWidth( PlatformDrawer.CalculateTextSize(treeViewItem.Data.Title, CachedStyles.BreadcrumbTitleStyle).x) .Translate(25, 0); if (treeViewItem == viewModel.ScrollTarget) { viewModel.Scroll = new Vector2(0, localItemY - ItemHeight * 5); viewModel.ScrollToItem(null); } if (treeViewItem.Selected) { PlatformDrawer.DrawStretchBox(itemRect, CachedStyles.WizardSubBoxStyle, 14); } PlatformDrawer.DrawLabel(labelRect, treeViewItem.Data.Title, CachedStyles.ListItemTitleStyle); PlatformDrawer.DrawImage(imageRect, treeViewItem.Icon, true); if (treeViewItem.ColorMark.HasValue) { var colorMarkRect = new Rect().WithSize(8, 8).InnerAlignWithCenterRight(itemRect).Translate(-24,0); PlatformDrawer.DrawRect(colorMarkRect,treeViewItem.ColorMark.Value); } if (viewModel.ShowToggle) { EditorGUI.BeginChangeCheck(); var toggleRect = new Rect().WithSize(16, 16).InnerAlignWithUpperRight(itemRect).Translate(-50, 0); GUI.enabled = viewModel.AllowManualToggle; var toggle = GUI.Toggle(toggleRect, treeViewItem.IsChecked, ""); GUI.enabled = true; if (treeViewItem.IsChecked != toggle) { viewModel.ToggleItem(treeViewItem, toggle); return; } } var item1 = treeViewItem; PlatformDrawer.DoButton(itemRect.Translate(25, 0), "", CachedStyles.ClearItemStyle, m => { viewModel.SelectedIndex = item1.Index; //TODO PUBLISH EVENT if (itemClicked != null) itemClicked(m, item1.Data); }, m => { if (itemRightClicked != null) itemRightClicked(m, item1.Data); }); if (treeData != null) PlatformDrawer.DoButton(imageRect, "", CachedStyles.ClearItemStyle, () => { treeData.Expanded = !treeData.Expanded; dirty = true; }); if (treeViewItem.Highlighted) { PlatformDrawer.DrawLine(new[] { new Vector3(labelRect.x, itemRect.yMax - 1, 0), new Vector3(labelRect.x + 75, itemRect.yMax - 1, 0) }, Color.cyan); } itemTemplateRect = itemTemplateRect.Below(itemTemplateRect); } GUI.EndScrollView(); if (!hasItems) { var textRect = bounds; var cacheColor = GUI.color; GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, 0.4f); PlatformDrawer.DrawLabel(textRect, "No Items Found", CachedStyles.WizardSubBoxTitleStyle, DrawingAlignment.MiddleCenter); GUI.color = cacheColor; return; } if (dirty) viewModel.IsDirty = true; }
private async Task<TreeViewModel> GetContainerBranch(string containerId) { var containerData = await _swiftService.GetContainer(containerId); TreeViewModel result = new TreeViewModel { text = containerId, containerId = containerId }; if (containerData.IsSuccess) { if (containerData.Objects != null && containerData.ObjectsCount > 0) { result.nodes = GetObjectBranch(containerId, "", containerData.Objects.Select(x => x.Object).ToList()).ToList(); if (result.nodes != null && result.nodes.Any()) { result.hasNodes = true; } } } return result; }
protected TreeViewModel ConstructViewModel(SelectionMenu items) { var result = new TreeViewModel { Data = items.Items, Submit = SelectItem }; return result; }