/// <exclude /> public static bool ExecuteElementDraggedAndDropped(ElementHandle draggedElementHandle, ElementHandle newParentElementHandle, int dropIndex, bool isCopy, FlowControllerServicesContainer draggedElementFlowControllerServicesContainer) { if (draggedElementHandle == null) { throw new ArgumentNullException("draggedElementHandle"); } if (newParentElementHandle == null) { throw new ArgumentNullException("newParentElementHandle"); } if (draggedElementFlowControllerServicesContainer == null) { throw new ArgumentNullException("draggedElementFlowControllerServicesContainer"); } if (draggedElementHandle.Equals(newParentElementHandle)) { LoggingService.LogError("ElementFacade", "ExecuteElementDraggedAndDropped on the same element is not allowed"); return(false); } DragAndDropType dragAndDropType = DragAndDropType.Move; if (isCopy) { dragAndDropType = DragAndDropType.Copy; } return(ElementProviderPluginFacade.OnElementDraggedAndDropped(draggedElementHandle.ProviderName, draggedElementHandle.EntityToken, newParentElementHandle.EntityToken, dropIndex, dragAndDropType, draggedElementFlowControllerServicesContainer)); }
public UIContainer(Color Colour, Color HighlightColour, Texture2D Texture = null, Vector2 Position = new Vector2(), Rectangle? SrcRect = null, int Width = UI_AUTO, int Height = UI_AUTO, bool IsActive = true, bool IsDraggable = false, CursorType CursorType = UI.CURSOR_DEFAULT, float MarginLeft = UI_AUTO, float MarginRight = UI_AUTO, float MarginTop = UI_AUTO, float MarginBottom = UI_AUTO, float opacity = UI_INHERIT, float layerDepth = UI_INHERIT, bool CentreHorizontal = false, bool CentreVertical = false, DragAndDropType DragAndDropType = DragAndDropType.None, object[] DataBinding = null) : base(Colour, HighlightColour, Texture, Position, SrcRect, Width, Height, IsActive, IsDraggable, CursorType, MarginLeft, MarginRight, MarginTop, MarginBottom, opacity, layerDepth) { Children = new List<UIElement>(); this.CentreHorizontal = CentreHorizontal; this.CentreVertical = CentreVertical; this._dragAndDropType = DragAndDropType; if (_dragAndDropType == DragAndDropType.DropElement) { this.OnLeftReleased = OnLeftReleasedHandler; } this.DataBinding = DataBinding; if (this.DataBinding == null) this.DataBinding = new object[0]; }
public InventoryContainer(Texture2D Texture = null, Vector2 Position = new Vector2(), Rectangle? SrcRect = null, int Width = UI_AUTO, int Height = UI_AUTO, bool IsActive = true, bool IsDraggable = false, CursorType CursorType = UI.CURSOR_DEFAULT, int GridColumns = UI_AUTO, int GridRows = UI_AUTO, int RowHeight = UI_AUTO, int ColWidth = UI_AUTO, float MarginLeft = UI_AUTO, float MarginRight = UI_AUTO, float MarginTop = UI_AUTO, float MarginBottom = UI_AUTO, float opacity = UI_INHERIT, float layerDepth = UI_INHERIT, DragAndDropType DragAndDropType = DragAndDropType.None, object[] DataBinding = null) : base(Texture, Position, SrcRect, Width, Height, IsActive, IsDraggable, CursorType, GridColumns, GridRows, RowHeight, ColWidth, MarginLeft, MarginRight, MarginTop, MarginBottom, opacity, layerDepth, DragAndDropType, DataBinding) { }
public bool OnElementDraggedAndDropped(EntityToken draggedEntityToken, EntityToken newParentEntityToken, int dropIndex, DragAndDropType dragAndDropType, FlowControllerServicesContainer flowControllerServicesContainer) { IPage draggedPage = (IPage)((DataEntityToken)draggedEntityToken).Data; Verify.IsNotNull(draggedPage, "Dragged page does not exist"); Guid newParentPageId; if (newParentEntityToken is PageElementProviderEntityToken) { newParentPageId = Guid.Empty; } else if (newParentEntityToken is DataEntityToken) { IPage newParentPage = (IPage)((DataEntityToken)newParentEntityToken).Data; newParentPageId = newParentPage.Id; } else { throw new NotImplementedException(); } IPage oldParent = null; Guid oldParentId = draggedPage.GetParentId(); if (oldParentId != Guid.Empty) { oldParent = DataFacade.GetData <IPage>(f => f.Id == oldParentId).Single(); } if (dragAndDropType == DragAndDropType.Move) { using (var transactionScope = TransactionsFacade.CreateNewScope()) { string urlTitle = draggedPage.UrlTitle; int counter = 1; while (true) { bool urlTitleClash = (from p in PageServices.GetChildren(newParentPageId).AsEnumerable() where p.UrlTitle == urlTitle && p.Id != draggedPage.Id select p).Any(); if (!urlTitleClash) { break; } urlTitle = string.Format("{0}{1}", draggedPage.UrlTitle, counter++); } draggedPage.UrlTitle = urlTitle; // Real drop index takes into account pages from other locales int realDropIndex = GetRealDropIndex(draggedPage, newParentPageId, dropIndex); draggedPage.MoveTo(newParentPageId, realDropIndex, false); DataFacade.Update(draggedPage); EntityTokenCacheFacade.ClearCache(draggedPage.GetDataEntityToken()); transactionScope.Complete(); } } else { throw new NotImplementedException(); } if (oldParent != null) { var oldParentParentTreeRefresher = new ParentTreeRefresher(flowControllerServicesContainer); oldParentParentTreeRefresher.PostRefreshMesseges(oldParent.GetDataEntityToken()); } else { var oldParentspecificTreeRefresher = new SpecificTreeRefresher(flowControllerServicesContainer); oldParentspecificTreeRefresher.PostRefreshMesseges(new PageElementProviderEntityToken(_context.ProviderName)); } var newParentParentTreeRefresher = new ParentTreeRefresher(flowControllerServicesContainer); newParentParentTreeRefresher.PostRefreshMesseges(newParentEntityToken); return(true); }
public static bool OnElementDraggedAndDropped(string providerName, EntityToken draggedEntityToken, EntityToken newParentEntityToken, int dropIndex, DragAndDropType dragAndDropType, FlowControllerServicesContainer draggedElementFlowControllerServicesContainer) { Verify.ArgumentNotNullOrEmpty(providerName, nameof(providerName)); Verify.ArgumentNotNull(draggedEntityToken, nameof(draggedEntityToken)); Verify.ArgumentNotNull(newParentEntityToken, nameof(newParentEntityToken)); Verify.ArgumentNotNull(draggedElementFlowControllerServicesContainer, nameof(draggedElementFlowControllerServicesContainer)); var provider = GetElementProvider(providerName) as IDragAndDropElementProvider; if (provider == null) { throw new ArgumentException($"The Element Provider identified byu the specified provider name does not implement {typeof(IDragAndDropElementProvider)}"); } return(provider.OnElementDraggedAndDropped(draggedEntityToken, newParentEntityToken, dropIndex, dragAndDropType, draggedElementFlowControllerServicesContainer)); }
public static bool OnElementDraggedAndDropped(string providerName, EntityToken draggedEntityToken, EntityToken newParentEntityToken, int dropIndex, DragAndDropType dragAndDropType, FlowControllerServicesContainer draggedElementFlowControllerServicesContainer) { if (string.IsNullOrEmpty(providerName)) { throw new ArgumentNullException("providerName"); } if (draggedEntityToken == null) { throw new ArgumentNullException("draggedEntityToken"); } if (newParentEntityToken == null) { throw new ArgumentNullException("newParentEntityToken"); } if (draggedElementFlowControllerServicesContainer == null) { throw new ArgumentNullException("draggedElementFlowControllerServicesContainer"); } IDragAndDropElementProvider provider = GetElementProvider(providerName) as IDragAndDropElementProvider; if (provider == null) { throw new ArgumentException(string.Format("The Element Provider identified byu the specified provider name does not implement {0}", typeof(IDragAndDropElementProvider))); } return(provider.OnElementDraggedAndDropped(draggedEntityToken, newParentEntityToken, dropIndex, dragAndDropType, draggedElementFlowControllerServicesContainer)); }
public bool OnElementDraggedAndDropped(EntityToken draggedEntityToken, EntityToken newParentEntityToken, int dropIndex, DragAndDropType dragAndDropType, FlowControllerServicesContainer draggedElementFlowControllerServicesContainer) { var destinationNamespace = (NamespaceFolderEntityToken)newParentEntityToken; var dataToken = draggedEntityToken as DataEntityToken; if (dataToken != null) { var draggedResource = (IResourceKey)dataToken.Data; draggedResource.Key = destinationNamespace.Namespace + "." + draggedResource.Key.Split('.').Last(); using (var data = new DataConnection()) { data.Update(draggedResource); } } var namespaceFolderToken = draggedEntityToken as NamespaceFolderEntityToken; if (namespaceFolderToken != null) { var key = namespaceFolderToken.Namespace.Split('.').Last(); LocalizationsFacade.RenameNamespace(namespaceFolderToken.Namespace, destinationNamespace.Namespace + "." + key); } var treeRefresher = new SpecificTreeRefresher(draggedElementFlowControllerServicesContainer); treeRefresher.PostRefreshMesseges(new LocalizationElementProviderEntityToken()); return(true); }
public static bool OnElementDraggedAndDropped(string providerName, EntityToken draggedEntityToken, EntityToken newParentEntityToken, int dropIndex, DragAndDropType dragAndDropType, FlowControllerServicesContainer draggedElementFlowControllerServicesContainer) { if (string.IsNullOrEmpty(providerName)) throw new ArgumentNullException("providerName"); if (draggedEntityToken == null) throw new ArgumentNullException("draggedEntityToken"); if (newParentEntityToken == null) throw new ArgumentNullException("newParentEntityToken"); if (draggedElementFlowControllerServicesContainer == null) throw new ArgumentNullException("draggedElementFlowControllerServicesContainer"); IDragAndDropElementProvider provider = GetElementProvider(providerName) as IDragAndDropElementProvider; if (provider == null) throw new ArgumentException(string.Format("The Element Provider identified byu the specified provider name does not implement {0}", typeof(IDragAndDropElementProvider))); return provider.OnElementDraggedAndDropped(draggedEntityToken, newParentEntityToken, dropIndex, dragAndDropType, draggedElementFlowControllerServicesContainer); }