public static Element CreateErrorElement(string label, string toolTip, string message) { Element errorElement = new Element(new ElementHandle("DUMMYPROVIDER", new NoSecurityEntityToken())) { VisualData = new ElementVisualizedData { Label = label, ToolTip = toolTip, Icon = ResourceHandle.BuildIconFromDefaultProvider("close"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("close"), HasChildren = false } }; errorElement.AddAction(new ElementAction(new ActionHandle(new MessageBoxActionToken( label, message, C1Console.Events.DialogType.Error ))) { VisualData = new ActionVisualizedData() { Label = label, ToolTip = toolTip, Icon = ResourceHandle.BuildIconFromDefaultProvider("close"), ActionLocation = ActionLocation.OtherPrimaryActionLocation } }); return errorElement; }
protected override IEnumerable<Element> OnGetElements(EntityToken parentEntityToken, TreeNodeDynamicContext dynamicContext) { foreach (var kvp in GetFunctionResult()) { Element element = new Element(new ElementHandle( dynamicContext.ElementProviderName, new TreeFunctionElementGeneratorEntityToken(this.Id.ToString(), this.Tree.TreeId, EntityTokenSerializer.Serialize(parentEntityToken), kvp.Key), dynamicContext.Piggybag.PreparePiggybag(this.ParentNode, parentEntityToken) )); element.VisualData = new ElementVisualizedData { Label = kvp.Value, ToolTip = kvp.Value, HasChildren = ChildNodes.Count() > 0, Icon = Core.ResourceSystem.ResourceHandle.BuildIconFromDefaultProvider("folder"), OpenedIcon = Core.ResourceSystem.ResourceHandle.BuildIconFromDefaultProvider("folder") }; yield return element; } }
/// <exclude /> public static ClientElement GetRoot() { List<Element> roots = ElementFacade.GetRoots(null).ToList(); if (roots.Count == 0) { // user with out any access logging in - return "empty root" roots = ElementFacade.GetRootsWithNoSecurity().ToList(); if (roots.Count == 0) throw new InvalidOperationException("No roots specified"); if (roots.Count > 1) throw new InvalidOperationException("More than one root specified"); var emptyElement = new Element(new ElementHandle("nullRoot", new NullRootEntityToken())); emptyElement.VisualData = new ElementVisualizedData { HasChildren = false, Label = "nullroot", Icon = CommonElementIcons.Folder }; roots.Clear(); roots.Add(emptyElement); } else if (roots.Count > 1) { throw new InvalidOperationException("More than one root specified"); } return roots[0].GetClientElement(); }
private IEnumerable<Element> GetRootElements(Dictionary<string, string> piggybag) { var element = new Element(this.Context.CreateElementHandle(new NugetRootEntityToken())) { VisualData = new ElementVisualizedData { Label = "Nuget Packages", ToolTip = "Nuget Packages overview", HasChildren = true, Icon = CommonElementIcons.Folder } }; element.AddAction(new ElementAction(new ActionHandle(new NugetActionToken())) { VisualData = new ActionVisualizedData { Label = "Open Package Manager", ToolTip = "Open Package Manager", Icon =CommonElementIcons.Advanced, ActionLocation = new ActionLocation { ActionType = ActionType.Add, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); yield return element; }
private static void DoInitialize(string elementAttachingProviderName) { var sharedRootFolders = new Dictionary<string, CustomTreePerspectiveInfo>(); var treeNodeDynamicContext = new TreeNodeDynamicContext(TreeNodeDynamicContextDirection.Down); treeNodeDynamicContext.Piggybag = new Dictionary<string, string>(); foreach (var tree in TreeFacade.AllTrees) { if (!tree.ShareRootElementById) continue; IEnumerable<NamedAttachmentPoint> namedAttachmentPoints = tree.AttachmentPoints. OfType<NamedAttachmentPoint>(); if (namedAttachmentPoints.Count() != 1) continue; if (tree.RootTreeNode.ChildNodes.Count() != 1) continue; SimpleElementTreeNode childTreeNode = tree.RootTreeNode.ChildNodes.Single() as SimpleElementTreeNode; if (childTreeNode == null) continue; NamedAttachmentPoint namedAttachmentPoint = namedAttachmentPoints.Single(); EntityToken perspectiveEntityToken; if (!sharedRootFolders.ContainsKey(childTreeNode.Id)) { perspectiveEntityToken = new TreePerspectiveEntityToken(childTreeNode.Id); var dynamicValuesHelperReplaceContext = new DynamicValuesHelperReplaceContext( namedAttachmentPoint.AttachingPoint.EntityToken, null); // MRJ: Collection actions Element element = new Element(new ElementHandle(elementAttachingProviderName, perspectiveEntityToken)) { VisualData = new ElementVisualizedData { Label = childTreeNode.LabelDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext), ToolTip = childTreeNode.ToolTipDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext), HasChildren = true, Icon = childTreeNode.Icon, OpenedIcon = childTreeNode.OpenIcon } }; sharedRootFolders.Add(childTreeNode.Id, new CustomTreePerspectiveInfo { AttachmentPoint = new NamedAttachmentPoint { AttachingPoint = new AttachingPoint(namedAttachmentPoint.AttachingPoint), Position = namedAttachmentPoint.Position }, Element = element, Trees = new List<Tree> { tree } }); } else { perspectiveEntityToken = sharedRootFolders[childTreeNode.Id].Element.ElementHandle.EntityToken; sharedRootFolders[childTreeNode.Id].Trees.Add(tree); } namedAttachmentPoint.AttachingPoint = new AttachingPoint(perspectiveEntityToken); tree.RootTreeNode = childTreeNode; } _sharedRootFolders = sharedRootFolders; }
private IEnumerable<Element> GetPackageSourcesFolderChildren(SearchToken seachToken) { List<IPackageServerSource> packageServerSources = (from a in DataFacade.GetData<IPackageServerSource>() orderby a.Url select a).ToList(); foreach (IPackageServerSource packageServerSource in packageServerSources) { Element element = new Element(_context.CreateElementHandle(packageServerSource.GetDataEntityToken())); element.VisualData = new ElementVisualizedData { Label = packageServerSource.Url, ToolTip = packageServerSource.Url, HasChildren = false, Icon = PackageSourceItemClosedIcon }; element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PackageElementProvider.DeletePackageSourceWorkflow"), new PermissionType[] { PermissionType.Administrate }))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "DeletePackageSourceLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "DeletePackageSourceToolTip"), Icon = DeletePackageSourceIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Delete, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); yield return element; } }
private IEnumerable<Element> GetInstalledPackageFolderChildren(SearchToken seachToken) { bool hasLocalPackageChildren = (from info in PackageManager.GetInstalledPackages() where info.IsLocalInstalled select info.Name).FirstOrDefault() != null; Element localPackagesElement = new Element(_context.CreateElementHandle(new PackageElementProviderInstalledPackageLocalPackagesFolderEntityToken())); localPackagesElement.VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "LocalPackagesFolderLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "LocalPackagesFolderToolTip"), HasChildren = hasLocalPackageChildren, Icon = LocalPackagesClosedIcon, OpenedIcon = LocalPackagesOpenedIcon }; AddInstallLocalPackageAction(localPackagesElement); yield return localPackagesElement; IEnumerable<string> groupNames = (from info in PackageManager.GetInstalledPackages() where info.IsLocalInstalled == false orderby info.GroupName select info.GroupName).Distinct(); foreach (string groupName in groupNames) { Element element = new Element(_context.CreateElementHandle(new PackageElementProviderInstalledPackageGroupFolderEntityToken(groupName))); element.VisualData = new ElementVisualizedData { Label = groupName, ToolTip = groupName, HasChildren = true, Icon = InstalledPackagesGroupClosedIcon, OpenedIcon = InstalledPackagesGroupOpenedIcon }; yield return element; } }
private IEnumerable<Element> GetAvailablePackageGroupFolderChildren(string groupName, SearchToken seachToken) { IEnumerable<PackageDescription> packageDescriptions = (from description in PackageSystemServices.GetFilteredAllAvailablePackages() where description.GroupName == groupName orderby description.Name select description); foreach (PackageDescription packageDescription in packageDescriptions) { ResourceHandle packageIcon = (packageDescription.PriceAmmount > 0 ? AvailableCommercialPackageItemIcon : AvailablePackageItemIcon); Element element = new Element(_context.CreateElementHandle(new PackageElementProviderAvailablePackagesItemEntityToken( packageDescription.Id.ToString(), packageDescription.GroupName))); element.VisualData = new ElementVisualizedData { Label = packageDescription.Name, ToolTip = packageDescription.Name, HasChildren = false, Icon = packageIcon, }; element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PackageElementProvider.ViewAvailablePackageInfoWorkflowWorkflow"), ActionPermissions))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "ViewAvailableInformationLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "ViewAvailableInformationToolTip"), Icon = ViewInstalledInformationIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Edit, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); yield return element; } }
public IEnumerable<Element> GetRoots(SearchToken seachToken) { Element element = new Element(_context.CreateElementHandle(new PackageElementProviderRootEntityToken())); element.VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "RootFolderLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "RootFolderToolTip"), HasChildren = true, Icon = RootClosedIcon, OpenedIcon = RootOpenedIcon }; AddInstallLocalPackageAction(element); yield return element; }
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 IEnumerable<Element> GetElements(IEnumerable<PageTemplateDescriptor> pageTemplates) { List<Element> elements = new List<Element>(); foreach (PageTemplateDescriptor pageTemplate in pageTemplates) { var entityToken = pageTemplate.GetEntityToken(); Element element = new Element(_context.CreateElementHandle(entityToken)); element.VisualData = new ElementVisualizedData { Label = pageTemplate.Title, ToolTip = pageTemplate.Title, HasChildren = false, Icon = pageTemplate.IsValid ? DesignTemplate : TemplateWithError, }; IEnumerable<ElementAction> actions = pageTemplate.GetActions(); element.AddAction(actions); elements.Add(element); } return elements; }
public IEnumerable<Element> GetRoots(SearchToken searchToken) { Element element = new Element(_context.CreateElementHandle(new PageTemplateRootEntityToken())); bool hasChildren = PageTemplateFacade.GetPageTemplates().Any(); element.VisualData = new ElementVisualizedData { Label = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.RootLabel"), ToolTip = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.RootLabelToolTip"), HasChildren = hasChildren, Icon = PageTemplateElementProvider.RootClosed, OpenedIcon = PageTemplateElementProvider.RootOpen }; const string addTemplateWorkflowType = "Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.AddNewPageTemplateWorkflow"; element.AddWorkflowAction(addTemplateWorkflowType, new[] { PermissionType.Add }, new ActionVisualizedData { Label = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.AddTemplate"), ToolTip = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.AddTemplateToolTip"), Icon = PageTemplateElementProvider.AddTemplate, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Add, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } }); foreach(var pageTemplateProviderName in PageTemplateProviderRegistry.ProviderNames) { var provider = PageTemplateProviderPluginFacade.GetProvider(pageTemplateProviderName); Verify.IsNotNull(provider, "Failed to get provider by name '{0}'", pageTemplateProviderName); IEnumerable<ElementAction> actions = provider.GetRootActions(); element.AddAction(actions); } return new [] { element }; }
private Element BuildElement(IData data, DynamicValuesHelperReplaceContext replaceContext, TreeNodeDynamicContext dynamicContext, bool localizationEnabled, List<object> itemKeys, ref IEnumerable<object> keysJoinedByParentFilters, EntityToken parentEntityToken ) { replaceContext.CurrentDataItem = data; object keyValue = this.KeyPropertyInfo.GetValue(data, null); bool itemLocalizationEnabledAndForeign = localizationEnabled && !data.DataSourceId.LocaleScope.Equals(UserSettings.ActiveLocaleCultureInfo); if (itemLocalizationEnabledAndForeign && itemKeys.Contains(keyValue)) return null; var currentEntityToken = data.GetDataEntityToken(); var element = new Element(new ElementHandle ( dynamicContext.ElementProviderName, currentEntityToken, dynamicContext.Piggybag.PreparePiggybag(this.ParentNode, parentEntityToken) )); bool hasChildren; bool isDisabled = false; ResourceHandle icon, openedIcon; if (itemLocalizationEnabledAndForeign) { hasChildren = false; isDisabled = !data.IsTranslatable(); if (this.Icon != null) { icon = this.Icon; openedIcon = this.OpenedIcon; } else { icon = data.GetForeignIcon(); openedIcon = icon; } } else { if (this.Display != LeafDisplayMode.Auto) { hasChildren = ChildNodes.Any(); } else { hasChildren = ChildNodes.OfType<SimpleElementTreeNode>().Any(); if (!hasChildren) { if (keysJoinedByParentFilters != null) { keysJoinedByParentFilters = keysJoinedByParentFilters.Evaluate(); hasChildren = keysJoinedByParentFilters.Contains(keyValue); } } // Checking children filtered by FunctionFilters if (!hasChildren) { foreach (var childNode in this.ChildNodes.OfType<DataElementsTreeNode>() .Where(n => n.FilterNodes.OfType<FunctionFilterNode>().Any())) { var newDynamicContext = new TreeNodeDynamicContext(TreeNodeDynamicContextDirection.Down) { ElementProviderName = dynamicContext.ElementProviderName, Piggybag = dynamicContext.Piggybag.PreparePiggybag(this.ParentNode, parentEntityToken), CurrentEntityToken = currentEntityToken }; if (childNode.GetDataset(newDynamicContext, false).DataItems.Any()) { hasChildren = true; break; } } } } if (this.Icon != null) { icon = this.Icon; openedIcon = this.OpenedIcon; } else { openedIcon = icon = data.GetIcon(); } } string label = this.Label.IsNullOrEmpty() ? data.GetLabel() : this.LabelDynamicValuesHelper.ReplaceValues(replaceContext); string toolTip = this.ToolTip.IsNullOrEmpty() ? label : this.ToolTipDynamicValuesHelper.ReplaceValues(replaceContext); if (itemLocalizationEnabledAndForeign) { label = string.Format("{0} ({1})", label, DataLocalizationFacade.GetCultureTitle(UserSettings.ForeignLocaleCultureInfo)); if (!data.IsTranslatable()) { toolTip = StringResourceSystemFacade.GetString("Composite.C1Console.Trees", "LocalizeDataWorkflow.DisabledData"); } else { toolTip = string.Format("{0} ({1})", toolTip, DataLocalizationFacade.GetCultureTitle(UserSettings.ForeignLocaleCultureInfo)); } } element.VisualData = new ElementVisualizedData { Label = label, ToolTip = toolTip, HasChildren = hasChildren, Icon = icon, OpenedIcon = openedIcon, IsDisabled = isDisabled }; if (InternalUrls.DataTypeSupported(data.DataSourceId.InterfaceType)) { var dataReference = data.ToDataReference(); if (DataUrls.CanBuildUrlForData(dataReference)) { string internalUrl = InternalUrls.TryBuildInternalUrl(dataReference); if (internalUrl != null) { element.PropertyBag.Add("Uri", internalUrl); } } } if (itemLocalizationEnabledAndForeign) { var actionToken = new WorkflowActionToken( WorkflowFacade.GetWorkflowType("Composite.C1Console.Trees.Workflows.LocalizeDataWorkflow"), LocalizeDataPermissionTypes); element.AddAction(new ElementAction(new ActionHandle(actionToken)) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.C1Console.Trees", "LocalizeDataWorkflow.LocalizeDataLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.C1Console.Trees", "LocalizeDataWorkflow.LocalizeDataToolTip"), Icon = LocalizeDataTypeIcon, Disabled = false, ActionLocation = ActionLocation.OtherPrimaryActionLocation } }); } return element; }
public IEnumerable<Element> GetChildren(EntityToken entityToken, SearchToken seachToken) { if ((entityToken is LocalizationElementProviderRootEntityToken) == false) throw new InvalidOperationException(); IEnumerable<ISystemActiveLocale> locales = DataFacade.GetData<ISystemActiveLocale>().ToList(); List<Element> elements = new List<Element>(); foreach (ISystemActiveLocale locale in locales) { bool isDefault = LocalizationFacade.IsDefaultLocale(locale.CultureName); ResourceHandle iconHandle = LocaleItemIcon; if (isDefault) { //lable = string.Format("{0} ({1})", lable, StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "ElementProvider.DefaultLabel")); iconHandle = DefaultLocaleItemIcon; } Element element = new Element(_context.CreateElementHandle(locale.GetDataEntityToken())); element.VisualData = new ElementVisualizedData { Label = DataLocalizationFacade.GetCultureTitle(new CultureInfo(locale.CultureName)), ToolTip = DataLocalizationFacade.GetCultureTitle(new CultureInfo(locale.CultureName)), HasChildren = false, Icon = iconHandle }; element.AddAction(new ElementAction(new ActionHandle( new WorkflowActionToken( WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.LocalizationElementProvider.EditSystemLocaleWorkflow"), new PermissionType[] { PermissionType.Administrate } ))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "EditSystemLocaleWorkflow.EditElementActionLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "EditSystemLocaleWorkflow.EditElementActionToolTip"), Icon = EditSystemLocaleIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Edit, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); if (isDefault == false) { element.AddAction(new ElementAction(new ActionHandle( new WorkflowActionToken( WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.LocalizationElementProvider.DefineDefaultActiveLocaleWorkflow"), new PermissionType[] { PermissionType.Administrate } ))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "DefineDefaultActiveLocaleWorkflow.ElementActionLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "DefineDefaultActiveLocaleWorkflow.ElementActionToolTip"), Icon = SetAsDefaultIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Edit, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); element.AddAction(new ElementAction(new ActionHandle( new WorkflowActionToken( WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.LocalizationElementProvider.RemoveSystemLocaleWorkflow"), new PermissionType[] { PermissionType.Administrate } ))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "RemoveSystemLocaleWorkflow.RemoveElementActionLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "RemoveSystemLocaleWorkflow.RemoveElementActionToolTip"), Icon = RemoveSystemLocaleIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Delete, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); } elements.Add(element); } return elements.OrderBy(f => f.VisualData.Label); }
public IEnumerable<Element> GetRoots(SearchToken seachToken) { Element element = new Element(_context.CreateElementHandle(new LocalizationElementProviderRootEntityToken())); element.VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "ElementProvider.RootFolderLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "ElementProvider.RootFolderToolTip"), HasChildren = true, Icon = RootClosedIcon, OpenedIcon = RootOpenedIcon }; element.AddAction(new ElementAction(new ActionHandle( new WorkflowActionToken( WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.LocalizationElementProvider.AddSystemLocaleWorkflow"), new PermissionType[] { PermissionType.Administrate } ))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "AddSystemLocaleWorkflow.AddElementActionLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "AddSystemLocaleWorkflow.AddElementActionToolTip"), Icon = AddSystemLocaleIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Add, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); yield return element; }
protected override IEnumerable<Element> OnGetElements(EntityToken parentEntityToken, TreeNodeDynamicContext dynamicContext) { var entityToken = new TreeSimpleElementEntityToken( this.Id, this.Tree.TreeId, EntityTokenSerializer.Serialize(parentEntityToken)); Element element = new Element(new ElementHandle( dynamicContext.ElementProviderName, entityToken, dynamicContext.Piggybag.PreparePiggybag(this.ParentNode, parentEntityToken) )); if (parentEntityToken is TreePerspectiveEntityToken) { element.ElementHandle.Piggyback[StringConstants.PiggybagTreeId] = Tree.TreeId; } var replaceContext = new DynamicValuesHelperReplaceContext(parentEntityToken, dynamicContext.Piggybag); element.VisualData = new ElementVisualizedData { Label = this.LabelDynamicValuesHelper.ReplaceValues(replaceContext), ToolTip = this.ToolTipDynamicValuesHelper.ReplaceValues(replaceContext), HasChildren = ChildNodes.Any(), Icon = this.Icon, OpenedIcon = this.OpenIcon }; yield return element; }
/// <exclude /> public IEnumerable<Element> GetRoots(SearchToken searchToken) { NamespaceTreeBuilder builder = new NamespaceTreeBuilder(OnGetFunctionInfos(searchToken).Cast<INamespaceTreeBuilderLeafInfo>()); bool hasChildren = (builder.RootFolder.SubFolders.Count != 0) || (builder.RootFolder.Leafs.Count != 0); Element element = new Element(_context.CreateElementHandle(new BaseFunctionFolderElementEntityToken(CreateId("", _context.ProviderName)))) { VisualData = new ElementVisualizedData() { Label = RootFolderLabel, ToolTip = RootFolderToolTip, HasChildren = hasChildren, Icon = hasChildren ? this.FolderIcon : this.EmptyFolderIcon, OpenedIcon = OpenFolderIcon } }; element.TreeLockBehavior = OnGetTreeLockBehavior(); IEnumerable<ElementAction> actions = OnGetFolderActions(); if (actions != null) { foreach (ElementAction action in actions) { element.AddAction(action); } } return new List<Element> { element }; }
private Element GetSharedCodeElement() { Element element = new Element(_context.CreateElementHandle(new SharedCodeFolderEntityToken())); element.VisualData = new ElementVisualizedData { Label = GetResourceString("PageTemplateElementProvider.SharedCodeFolder.Title"), ToolTip = GetResourceString("PageTemplateElementProvider.SharedCodeFolder.ToolTip"), HasChildren = true, Icon = FolderIcon, }; return element; }
private Element CreateFunctionElement(IFunctionTreeBuilderLeafInfo function) { IMetaFunction functionDetails; if (FunctionFacade.TryGetFunction(out functionDetails, string.Format("{0}.{1}", function.Namespace, function.Name), typeof(IFunction)) == false) { FunctionFacade.TryGetFunction(out functionDetails, string.Format("{0}.{1}", function.Namespace, function.Name), typeof(IWidgetFunction)); } string functionTooltip = (functionDetails == null || string.IsNullOrEmpty(functionDetails.Description) ? function.Name : StringResourceSystemFacade.ParseString(functionDetails.Description)); var intitializationInfo = functionDetails as IFunctionInitializationInfo; bool functionWerentLoadedCorrectly = intitializationInfo != null && !intitializationInfo.FunctionInitializedCorrectly; Element element = new Element(_context.CreateElementHandle(function.EntityToken)) { VisualData = new ElementVisualizedData() { Label = function.Name, ToolTip = functionTooltip, HasChildren = false, Icon = functionWerentLoadedCorrectly ? BaseFunctionProviderElementProvider.FunctionError : BaseFunctionProviderElementProvider.Function } }; element.TreeLockBehavior = OnGetTreeLockBehavior(); IEnumerable<ElementAction> actions = OnGetFunctionActions(function); if (actions != null) { foreach (ElementAction action in actions) { element.AddAction(action); } } return element; }
private IEnumerable<Element> GetSharedCodeElements(SearchToken searchToken) { var result = new List<Element>(); foreach(SharedFile sharedFile in PageTemplateFacade.GetSharedFiles()) { string relativeFilePath = sharedFile.RelativeFilePath; string fullPath = relativeFilePath.StartsWith("~") ? PathUtil.Resolve(relativeFilePath) : relativeFilePath; var websiteFile = new WebsiteFile(fullPath); Element element = new Element(_context.CreateElementHandle(new SharedCodeFileEntityToken(relativeFilePath))) { VisualData = new ElementVisualizedData() { Label = websiteFile.FileName, ToolTip = websiteFile.FileName, HasChildren = false, Icon = FileElementProvider.WebsiteFileIcon(websiteFile.MimeType), OpenedIcon = FileElementProvider.WebsiteFileIcon(websiteFile.MimeType) } }; element.PropertyBag.Add("Uri", PathUtil.GetWebsitePath(websiteFile.FullPath)); element.PropertyBag.Add("ElementType", websiteFile.MimeType); // Adding "Edit" action for text-editable files if (sharedFile.DefaultEditAction && MimeTypeInfo.IsTextFile(websiteFile.MimeType)) { element.AddWorkflowAction( "Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.EditSharedCodeFileWorkflow", new[] {PermissionType.Edit}, new ActionVisualizedData { Label = GetResourceString("EditSharedCodeFile.Label"), ToolTip = GetResourceString("EditSharedCodeFile.ToolTip"), Icon = CommonCommandIcons.Edit, Disabled = websiteFile.IsReadOnly, ActionLocation = new ActionLocation { ActionType = ActionType.Edit, IsInFolder = false, IsInToolbar = true, ActionGroup = EditCodeFileActionGroup } }); } var customActions = sharedFile.GetActions(); foreach(var action in customActions) { element.AddAction(action); } result.Add(element); } return result; }
private static void AddInstallLocalPackageAction(Element element) { element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PackageElementProvider.InstallLocalPackageWorkflow"), ActionPermissions))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "InstallLocalPackageLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "InstallLocalPackageToolTip"), Disabled = false, Icon = InstallLocalPackageIcon, ActionLocation = new ActionLocation { ActionType = ActionType.Add, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); }
public IEnumerable<Element> GetRoots(SearchToken seachToken) { Element rootFolderElement = new Element(_context.CreateElementHandle(new PageTemplateFeatureEntityToken(PageTemplateFeatureEntityToken.RootFolderId))) { VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.RootLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.RootToolTip"), HasChildren = this.PageTemplateFeatureFilenames.Any(), Icon = PageTemplateFeatureRootIcon, OpenedIcon = PageTemplateFeatureRootIconOpen } }; rootFolderElement.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateFeatureElementProvider.AddPageTemplateFeatureWorkflow"), PermissionTypePredefined.Add))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.AddTemplateFeature"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.AddTemplateFeatureToolTip"), Icon = PageTemplateFeatureIconAdd, Disabled = false, ActionLocation = ActionLocation.AddPrimaryActionLocation } }); yield return rootFolderElement; }
private IEnumerable<Element> GetAvailablePackagesFolderChildren(SearchToken seachToken) { IEnumerable<string> groupNames = (from description in PackageSystemServices.GetFilteredAllAvailablePackages() select description.GroupName).Distinct(); foreach (string groupName in groupNames.OrderBy(f=>f)) { Element element = new Element(_context.CreateElementHandle(new PackageElementProviderAvailablePackagesGroupFolderEntityToken(groupName))); element.VisualData = new ElementVisualizedData { Label = groupName, ToolTip = groupName, HasChildren = true, Icon = AvailablePackagesGroupClosedIcon, OpenedIcon = AvailablePackagesGroupOpenedIcon }; yield return element; } }
public IEnumerable<Element> GetChildren(EntityToken entityToken, SearchToken seachToken) { if (entityToken.Id == PageTemplateFeatureEntityToken.RootFolderId) { foreach (string pageTemplateFeratureFilename in this.PageTemplateFeatureFilenames) { string filename = Path.GetFileName(pageTemplateFeratureFilename); string featureName = Path.GetFileNameWithoutExtension(filename); bool isHtml = Path.GetExtension(filename) == ".html"; Element featureElement = new Element(_context.CreateElementHandle( PageTemplateFeatureEntityToken.BuildFeatureEntityToken(featureName))) { VisualData = new ElementVisualizedData { Label = featureName, ToolTip = filename, Icon = PageTemplateFeatureIcon } }; featureElement.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateFeatureElementProvider.EditPageTemplateFeatureWorkflow"), PermissionTypePredefined.Edit))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.EditTemplateFeature"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.EditTemplateFeatureToolTip"), Icon = PageTemplateFeatureIconEdit, Disabled = false, ActionLocation = ActionLocation.EditPrimaryActionLocation } }); featureElement.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateFeatureElementProvider.DeletePageTemplateFeatureWorkflow"), PermissionTypePredefined.Delete))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.DeleteTemplateFeature"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.DeleteTemplateFeatureToolTip"), Icon = PageTemplateFeatureIconDelete, Disabled = false, ActionLocation = ActionLocation.DeletePrimaryActionLocation } }); featureElement.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateFeatureElementProvider.TogglePageTemplateFeatureEditorWorkflow"), PermissionTypePredefined.Edit))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.EditVisually"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageTemplateFeatureElementProvider", "ElementProvider.EditVisuallyToolTip"), Icon = PageTemplateFeatureIconEdit, Disabled = false, ActionCheckedStatus = isHtml ? ActionCheckedStatus.Checked : ActionCheckedStatus.Unchecked, ActionLocation = new ActionLocation { ActionType = ActionType.Other, IsInFolder = false, IsInToolbar = false, ActionGroup = PrimaryFolderToolsActionGroup }, } }); yield return featureElement; } yield break; } yield break; }
private IEnumerable<Element> GetInstalledPackageGroupFolderChildren(string groupName, SearchToken seachToken) { IEnumerable<InstalledPackageInformation> installedPackageInformations = from info in PackageManager.GetInstalledPackages() where info.GroupName == groupName && info.IsLocalInstalled == false orderby info.Name select info; foreach (InstalledPackageInformation installedPackageInformation in installedPackageInformations) { Element element = new Element(_context.CreateElementHandle(new PackageElementProviderInstalledPackageItemEntityToken( installedPackageInformation.Id, installedPackageInformation.GroupName, installedPackageInformation.IsLocalInstalled, installedPackageInformation.CanBeUninstalled))); element.VisualData = new ElementVisualizedData { Label = installedPackageInformation.Name, ToolTip = installedPackageInformation.Name, HasChildren = false, Icon = GetIconForPackageItem(installedPackageInformation.Id), }; element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PackageElementProvider.ViewInstalledPackageInfoWorkflow"), ActionPermissions))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "ViewInstalledInformationLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "ViewInstalledInformationToolTip"), Icon = ViewInstalledInformationIcon, Disabled = false, ActionLocation = new ActionLocation { ActionType = ActionType.Edit, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); yield return element; } }
public IEnumerable<Element> GetRoots(SearchToken seachToken) { Element element = new Element(_context.CreateElementHandle(new PackageCreatorElementProviderEntityToken())) { VisualData = new ElementVisualizedData() { Label = PackageCreatorFacade.GetLocalization("PackageCreatorElementProviderEntityToken.Label"), ToolTip = PackageCreatorFacade.GetLocalization("PackageCreatorElementProviderEntityToken.ToolTip"), HasChildren = true, Icon = new ResourceHandle("Composite.Icons", "blocks"), OpenedIcon = new ResourceHandle("Composite.Icons", "blocks") } }; element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(typeof(CreatePackageWorkflow), new PermissionType[] { PermissionType.Administrate }))) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("CreatePackage.Label"), ToolTip = PackageCreatorFacade.GetLocalization("CreatePackage.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "blocks"), ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = true, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(typeof(UploadConfigWorkflow), new PermissionType[] { PermissionType.Administrate }))) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("UploadConfig.Label"), ToolTip = PackageCreatorFacade.GetLocalization("UploadConfig.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "package-install-local-package"), ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = false, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); if (UserSettings.C1ConsoleUiLanguage.Name != "en-US") { element.AddAction(new ElementAction(new ActionHandle(new CreatePackageWorkflowActionToken(string.Format("Composite.Localization.C1Console.{0}", new CultureInfo(UserSettings.C1ConsoleUiLanguage.TwoLetterISOLanguageName).EnglishName), new AddLocalizationActionToken(UserSettings.C1ConsoleUiLanguage.Name)))) { VisualData = new ActionVisualizedData { Label = string.Format(PackageCreatorFacade.GetLocalization("CreateLocalizationPackage.Label"), StringResourceSystemFacade.GetString("Composite.Cultures", UserSettings.C1ConsoleUiLanguage.Name)), ToolTip = string.Format(PackageCreatorFacade.GetLocalization("CreateLocalizationPackage.ToolTip"), StringResourceSystemFacade.GetString("Composite.Cultures", UserSettings.C1ConsoleUiLanguage.Name)), Icon = new ResourceHandle("Composite.Icons", "package-element-closed-availableitem"), ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = false, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); } yield return element; yield return GetXmlNodeElement(PCCompositeConfig.Source, string.Empty, PCCompositeConfig.Source); yield return GetXmlNodeElement(PCWebConfig.Source, string.Empty, PCWebConfig.Source); }
private IEnumerable<Element> GetRootChildren(SearchToken seachToken) { Element availablePackagesElement = new Element(_context.CreateElementHandle(new PackageElementProviderAvailablePackagesFolderEntityToken())); availablePackagesElement.VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "AvailablePackagesFolderLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "AvailablePackagesFolderToolTip"), HasChildren = true, Icon = AvailablePackagesClosedIcon, OpenedIcon = AvailablePackagesOpenedIcon }; availablePackagesElement.AddAction(new ElementAction(new ActionHandle(new ClearServerCacheActionToken())) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "ClearServerCacheLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "ClearServerCacheToolTip"), Disabled = false, Icon = ClearServerCacheIcon, ActionLocation = new ActionLocation { ActionType = ActionType.Other, IsInFolder = false, IsInToolbar = false, ActionGroup = PrimaryActionGroup } } }); yield return availablePackagesElement; Element installedPackagesElement = new Element(_context.CreateElementHandle(new PackageElementProviderInstalledPackageFolderEntityToken())); installedPackagesElement.VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "InstalledPackageFolderLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "InstalledPackageFolderToolTip"), HasChildren = true, Icon = InstalledPackagesClosedIcon, OpenedIcon = InstalledPackagesOpenedIcon }; yield return installedPackagesElement; Element packageSourcesElement = new Element(_context.CreateElementHandle(new PackageElementProviderPackageSourcesFolderEntityToken())); packageSourcesElement.VisualData = new ElementVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "PackageSourcesFolderLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "PackageSourcesFolderToolTip"), HasChildren = DataFacade.GetData<IPackageServerSource>().Count() > 0, Icon = PackageSourcesClosedIcon, OpenedIcon = PackageSourcesOpenedIcon }; packageSourcesElement.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PackageElementProvider.AddPackageSourceWorkflow"), new PermissionType[] { PermissionType.Administrate }))) { VisualData = new ActionVisualizedData { Label = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "AddPackageSourceLabel"), ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "AddPackageSourceToolTip"), Disabled = false, Icon = AddPackageSourceIcon, ActionLocation = new ActionLocation { ActionType = ActionType.Add, IsInFolder = false, IsInToolbar = true, ActionGroup = PrimaryActionGroup } } }); yield return packageSourcesElement; }
private Element GetXmlAttributeElement(string source, string xpath, string name) { var element = new Element(_context.CreateElementHandle(new XmlNodeAttributeProviderEntityToken(xpath, source))) { VisualData = new ElementVisualizedData() { Label = name, ToolTip = name, HasChildren = false, Icon = new ResourceHandle("Composite.Icons", "data"), OpenedIcon = new ResourceHandle("Composite.Icons", "data") } }; return element; }
/// <exclude /> public bool Equals(Element element) { if (element == null) return false; return element.ElementHandle.EntityToken.Equals(this.ElementHandle.EntityToken); }
public IEnumerable<Element> GetChildren(EntityToken entityToken, SearchToken seachToken) { if (entityToken is PackageCreatorElementProviderEntityToken) { IEnumerable<string> packages = PackageCreatorFacade.GetPackageNames(); foreach (var package in packages) { bool isActivePackage = PackageCreatorFacade.ActivePackageName == package; var icon = isActivePackage ? (new ResourceHandle("Composite.Icons", "inbox-green")) : new ResourceHandle("Composite.Icons", "inbox"); var element = new Element(_context.CreateElementHandle(new PackageCreatorPackageElementProviderEntityToken(package))) { VisualData = new ElementVisualizedData() { Label = package, ToolTip = package, HasChildren = true, Icon = icon, OpenedIcon = icon } }; element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(typeof(EditPackageWorkflow), new[] { PermissionType.Administrate }))) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("EditPackage.Label"), ToolTip = PackageCreatorFacade.GetLocalization("EditPackage.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "page-edit-page"), ActionLocation = new ActionLocation { ActionType = ActionType.Other, IsInFolder = false, IsInToolbar = true, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); if (!isActivePackage) { element.AddAction(new ElementAction(new ActionHandle(new SetActivePackageActionToken())) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("SetActivePackage.Label"), ToolTip = PackageCreatorFacade.GetLocalization("SetActivePackage.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "accept"), ActionLocation = new ActionLocation { ActionType = ActionType.Other, IsInFolder = false, IsInToolbar = true, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); } element.AddAction(new ElementAction(new ActionHandle(new ConfirmWorkflowActionToken("Are you sure?", typeof(DeleteConfigPackageCreatorActionToken)))) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("DeleteConfigPackageCreator.Label"), ToolTip = PackageCreatorFacade.GetLocalization("DeleteConfigPackageCreator.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "generated-type-delete"), ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = false, ActionGroup = new ActionGroup("Other", ActionGroupPriority.PrimaryLow) } } }); element.AddAction(new ElementAction(new ActionHandle(new DownloadPackageActionToken("package"))) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("DownloadPackageButton.Label"), ToolTip = PackageCreatorFacade.GetLocalization("DownloadPackageButton.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "package-install-local-package"), ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = true, ActionGroup = new ActionGroup("Download", ActionGroupPriority.PrimaryLow) } } }); element.AddAction(new ElementAction(new ActionHandle(new DownloadPackageActionToken("config"))) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("DownloadConfigButton.Label"), ToolTip = PackageCreatorFacade.GetLocalization("DownloadConfigButton.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "package-install-local-package"), ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = false, ActionGroup = new ActionGroup("Download", ActionGroupPriority.PrimaryLow) } } }); yield return element; } } else if (entityToken is PackageCreatorPackageElementProviderEntityToken) { var categories = PackageCreatorFacade.GetCategories(entityToken.Source); foreach (var category in categories) { var element = new Element(_context.CreateElementHandle(new PackageCreatorCategoryElementProviderEntityToken(entityToken.Source, category.Name))) { VisualData = new ElementVisualizedData() { Label = category.GetLabel(), ToolTip = category.GetLabel(), HasChildren = true, Icon = new ResourceHandle("Composite.Icons", "folder"), OpenedIcon = new ResourceHandle("Composite.Icons", "folder-open") } }; yield return element; } } else if (entityToken is PackageCreatorCategoryElementProviderEntityToken) { var items = PackageCreatorFacade.GetItems(entityToken.Type, entityToken.Source); foreach (var item in items.OrderBy(d => d.Id)) { var element = new Element(_context.CreateElementHandle(new PackageCreatorItemElementProviderEntityToken(item.Id, entityToken.Source, entityToken.Type))) { VisualData = new ElementVisualizedData() { Label = item.GetLabel(), ToolTip = item.Id, HasChildren = false, Icon = item.ItemIcon, OpenedIcon = item.ItemIcon } }; element.AddAction(new ElementAction(new ActionHandle(new DeleteItemPackageCreatorActionToken())) { VisualData = new ActionVisualizedData { Label = PackageCreatorFacade.GetLocalization("DeleteItemPackageCreator.Label"), ToolTip = PackageCreatorFacade.GetLocalization("DeleteItemPackageCreator.ToolTip"), Icon = new ResourceHandle("Composite.Icons", "page-delete-page"), ActionLocation = new ActionLocation { ActionType = ActionType.Other, IsInFolder = false, IsInToolbar = true, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); yield return element; } } else if (entityToken is XmlNodeElementProviderEntityToken) { var configuration = PackageCreatorFacade.GetConfigurationDocument(entityToken.Source); var xpath = (entityToken as XmlNodeElementProviderEntityToken).XPath; XContainer container = xpath == string.Empty ? configuration as XContainer : configuration.XPathSelectElement(xpath) as XContainer; var element = container as XElement; var counter = new Dictionary<string, int>(); if (container != null) { var xmlElements = new List<Element>(); foreach (XElement item in container.Elements()) { string position = string.Empty; string name = item.Name.ToString(); if (counter.ContainsKey(name)) { position = string.Format("[{0}]", ++counter[name]); } else { counter.Add(name, 1); } if (item.Attribute("name") != null) { position = string.Format("[@name='{0}']", item.Attribute("name").Value); } string description = item.IndexAttributeValue(); xmlElements.Add(GetXmlNodeElement(entityToken.Source, string.Format("{0}/{1}{2}", xpath, name, position), name + (string.IsNullOrEmpty(description) ? string.Empty : string.Format("({0})", description)))); } xmlElements.Sort((a, b) => string.Compare(a.VisualData.Label, b.VisualData.Label, StringComparison.InvariantCulture)); foreach (var e in xmlElements) yield return e; } if (element != null) { var elementPath = Regex.Replace(xpath, @"\[[^\]]*\]$", ""); foreach (var attribute in element.Attributes()) { string name = attribute.Name.ToString(); yield return GetXmlAttributeElement(entityToken.Source, string.Format("{0}[@{1}='{2}']", elementPath, name, attribute.Value), string.Format("{0}={1}", name, attribute.Value)); } } } }