private Element CreateFolderElement(NamespaceTreeBuilderFolder node) { bool hasChildren = (node.SubFolders.Count != 0) || (node.Leafs.Count != 0); var element = new Element(_context.CreateElementHandle(new BaseFunctionFolderElementEntityToken(CreateId(node, _context.ProviderName)))) { VisualData = new ElementVisualizedData { Label = node.Name, ToolTip = node.Name, HasChildren = (node.SubFolders.Count != 0) || (node.Leafs.Count != 0), Icon = hasChildren ? this.FolderIcon : this.EmptyFolderIcon, OpenedIcon = this.OpenFolderIcon }, TreeLockBehavior = OnGetTreeLockBehavior() }; IEnumerable <ElementAction> actions = OnGetFolderActions(); if (actions != null) { foreach (ElementAction action in actions) { element.AddAction(action); } } return(element); }
private bool SubTreeContainsToken(NamespaceTreeBuilderFolder folder, SearchToken searchToken) { if (string.IsNullOrEmpty(searchToken.Keyword)) { return(true); } if (folder.Name.Contains(searchToken.Keyword)) { return(true); } foreach (INamespaceTreeBuilderLeafInfo leaf in folder.Leafs) { if (leaf.Name.Contains(searchToken.Keyword)) { return(true); } } foreach (NamespaceTreeBuilderFolder subFolder in folder.SubFolders) { if (SubTreeContainsToken(subFolder, searchToken)) { return(true); } } return(false); }
/// <exclude /> public static string CreateId(NamespaceTreeBuilderFolder folderNode, string providerName) { if (folderNode.Namespace == "") { return(CreateId(folderNode.Name, providerName)); } return(CreateId(string.Format("{0}.{1}", folderNode.Namespace, folderNode.Name), providerName)); }
public IEnumerable <EntityToken> GetParents(EntityToken entityToken) { if ((entityToken is SqlFunctionProviderRootEntityToken)) { return(new EntityToken[] { }); } else if ((entityToken is SqlFunctionProviderFolderEntityToken)) { SqlFunctionProviderFolderEntityToken token = entityToken as SqlFunctionProviderFolderEntityToken; NamespaceTreeBuilder builder = (NamespaceTreeBuilder)ElementFacade.GetData(new ElementProviderHandle(token.Source), token.ConnectionId); NamespaceTreeBuilderFolder folder = builder.FindFolder(f => StringExtensionMethods.CreateNamespace(f.Namespace, f.Name, '.') == token.Id); if (folder == null) { return(null); } else { int idx = token.Id.LastIndexOf('.'); if (idx != -1) { return(new EntityToken[] { new SqlFunctionProviderFolderEntityToken(token.Id.Remove(idx), token.Source, token.ConnectionId) }); } else { Guid id = new Guid(token.ConnectionId); ISqlConnection sqlConnection = DataFacade.GetData <ISqlConnection>(f => f.Id == id).SingleOrDefault(); if (sqlConnection == null) { return(new EntityToken[] { }); } return(new EntityToken[] { sqlConnection.GetDataEntityToken() }); } } } else { throw new NotImplementedException(); } }
private Element CreateFolderElement(NamespaceTreeBuilderFolder node, string connectionId) { bool hasChildren = (node.SubFolders.Count != 0) || (node.Leafs.Count != 0); var element = new Element(_context.CreateElementHandle(new SqlFunctionProviderFolderEntityToken(StringExtensionMethods.CreateNamespace(node.Namespace, node.Name, '.'), _context.ProviderName, connectionId))) { VisualData = new ElementVisualizedData { Label = node.Name, ToolTip = node.Name, HasChildren = (node.SubFolders.Count != 0) || (node.Leafs.Count != 0), Icon = hasChildren ? this.FolderIcon : this.EmptyFolderIcon, OpenedIcon = this.OpenFolderIcon } }; element.AddAction(new ElementAction(new ActionHandle( new WorkflowActionToken( WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.AddNewSqlFunctionProviderWorkflow"), new PermissionType[] { PermissionType.Add } ))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddQuery"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddQueryToolTip"), Icon = SqlFunctionElementProvider.AddFunction, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Edit, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); return(element); }