Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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);
        }