public FlowToken Execute(EntityToken entityToken, ActionToken actionToken, FlowControllerServicesContainer flowControllerServicesContainer) { var packageName = PackageCreatorFacade.ActivePackageName; if (entityToken is PackageCreatorEntityToken) { packageName = (entityToken as PackageCreatorEntityToken).Source; } if (string.IsNullOrEmpty(packageName)) { flowControllerServicesContainer.GetService <IManagementConsoleMessageService>(); IManagementConsoleMessageService consoleServices = flowControllerServicesContainer.GetService <IManagementConsoleMessageService>(); consoleServices.ShowMessage(DialogType.Warning, PackageCreatorFacade.GetLocalization("NoPackages.Title"), PackageCreatorFacade.GetLocalization("NoPackages.Message")); return(null); } if (actionToken is PackageCreatorActionToken) { var token = actionToken as PackageCreatorActionToken; foreach (var item in PackageCreatorActionFacade.GetPackageCreatorItems(entityToken)) { if (item.CategoryName == token.CategoryName) { //if diffent item for one category and entitytoken var itemActionToken = item as IPackItemActionToken; if (itemActionToken != null) { if (token.Name != itemActionToken.ActionTokenName) { continue; } } if (item is IPackToggle) { if ((item as IPackToggle).CheckedStatus == ActionCheckedStatus.Checked) { PackageCreatorFacade.RemoveItem(item, packageName); } else { PackageCreatorFacade.AddItem(item, packageName); } var parentTreeRefresher = new ParentTreeRefresher(flowControllerServicesContainer); parentTreeRefresher.PostRefreshMesseges(entityToken); } else { PackageCreatorFacade.AddItem(item, packageName); } break; } } } SpecificTreeRefresher treeRefresher = new SpecificTreeRefresher(flowControllerServicesContainer); treeRefresher.PostRefreshMesseges(new PackageCreatorElementProviderEntityToken()); return(null); }
public IEnumerable <ElementAction> GetActions(EntityToken entityToken) { if (!PackageCreatorFacade.IsHaveAccess) { yield break; } foreach (var item in PackageCreatorActionFacade.GetPackageCreatorItems(entityToken)) { var name = string.Empty; var disabled = false; var checkStatus = ActionCheckedStatus.Uncheckable; if (item is IPackItemActionToken) { name = (item as IPackItemActionToken).ActionTokenName; } if (item is IPackToggle) { disabled = (item as IPackToggle).Disabled; checkStatus = (item as IPackToggle).CheckedStatus; } var actionToken = new PackageCreatorActionToken(item.CategoryName, name); yield return(new ElementAction(new ActionHandle(actionToken)) { VisualData = new ActionVisualizedData { Label = item.ActionLabel, ToolTip = item.ActionToolTip, Icon = item.ActionIcon, Disabled = disabled, ActionCheckedStatus = checkStatus, ActionLocation = new ActionLocation { ActionType = PackageCreatorFacade.ActionType, IsInFolder = false, IsInToolbar = false, ActionGroup = new ActionGroup("Develop", ActionGroupPriority.PrimaryLow) } } }); } }