public static void ExecuteEverytimeWhenShown(jQueryObject element, Action callback, bool callNowIfVisible) { autoIncrement++; string eventClass = "ExecuteEverytimeWhenShown" + autoIncrement; bool wasVisible = element.Is(":visible"); if (wasVisible && callNowIfVisible) callback(); jQueryEventHandler check = delegate(jQueryEvent e) { if (element.Is(":visible")) { if (!wasVisible) { wasVisible = true; callback(); } } else wasVisible = false; }; var uiTabs = element.Closest(".ui-tabs"); if (uiTabs.Length > 0) uiTabs.Bind("tabsactivate." + eventClass, check); var dialog = element.Closest(".ui-dialog-content"); if (dialog.Length > 0) dialog.Bind("dialogopen." + eventClass, check); element.Bind("shown." + eventClass, check); }
public static jQueryObject Next(jQueryObject q, string selector) { for (q = q.Next(); q.Size() > 0 && !q.Is(selector); q = q.Next()) { ; } return(q); }
public static void ExecuteEverytimeWhenShown(jQueryObject element, Action callback, bool callNowIfVisible) { autoIncrement++; string eventClass = "ExecuteEverytimeWhenShown" + autoIncrement; bool wasVisible = element.Is(":visible"); if (wasVisible && callNowIfVisible) { callback(); } jQueryEventHandler check = delegate(jQueryEvent e) { if (element.Is(":visible")) { if (!wasVisible) { wasVisible = true; callback(); } } else { wasVisible = false; } }; var uiTabs = element.Closest(".ui-tabs"); if (uiTabs.Length > 0) { uiTabs.Bind("tabsactivate." + eventClass, check); } var dialog = element.Closest(".ui-dialog-content"); if (dialog.Length > 0) { dialog.Bind("dialogopen." + eventClass, check); } element.Bind("shown." + eventClass, check); }
public void DeleteItem(int row) { numRows--; rowData.RemoveAt(row); #if CLIENT if (isAttached && !rebuilding) { int newSelection = SelectedRowIndex; bool changeSelection = false; if (SelectedRowIndex == row) { if (numRows > 0) { if (newSelection == numRows) { newSelection = numRows - 1; } } else { newSelection = -1; } changeSelection = true; } jQueryObject q = jQuery.FromElement(GetValuesTBody().Rows[row]).Remove(), next = q.Next(); q.Remove(); for (; next.Size() > 0; next = next.Next()) { if (next.Is("." + EvenRowClass)) { next.RemoveClass(EvenRowClass); next.AddClass(OddRowClass); } else { next.RemoveClass(OddRowClass); next.AddClass(EvenRowClass); } } if (changeSelection) { selectedRowIndex = -1; // hack to make the next procedure sure the GUI must be updated SelectedRowIndex = newSelection; OnSelectionChanged(EventArgs.Empty); } return; } #endif if (selectedRowIndex >= row) { selectedRowIndex--; } rowTextsIfNotRendered.RemoveAt(row); rowClassesIfNotRendered.RemoveAt(row); }
public void Refresh() { if (!PopulateWhenVisible()) { InternalRefresh(); return; } if (slickContainer.Is(":visible")) { slickContainer.Data("needsRefresh", false); InternalRefresh(); return; } slickContainer.Data("needsRefresh", true); }
public static jQueryObject SetReadOnly(jQueryObject elements, bool isReadOnly) { elements.Each(delegate(int index, Element el) { jQueryObject elx = jQuery.FromElement(el); string type = elx.GetAttribute("type"); if (elx.Is("select") || (type == "radio") || (type == "checkbox")) { if (isReadOnly) { elx.AddClass("readonly").Attribute("disabled", "disabled"); } else { elx.RemoveClass("readonly").RemoveAttr("disabled"); } } else { if (isReadOnly) { elx.AddClass("readonly").Attribute("readonly", "readonly"); } else { elx.RemoveClass("readonly").RemoveAttr("readonly"); } } return(true); }); return(elements); }
public static void ExecuteOnceWhenShown(jQueryObject element, Action callback) { autoIncrement++; string eventClass = "ExecuteOnceWhenShown" + autoIncrement; bool executed = false; if (element.Is(":visible")) callback(); else { jQueryObject uiTabs = element.Closest(".ui-tabs"); if (uiTabs.Length > 0) { uiTabs.Bind("tabsshow." + eventClass, delegate(jQueryEvent e) { if (element.Is(":visible")) { uiTabs.Unbind("tabsshow." + eventClass); if (!executed) { executed = true; element.Unbind("shown." + eventClass); callback(); } } }); } jQueryObject dialog; if (element.HasClass("ui-dialog")) dialog = element.Children(".ui-dialog-content"); else dialog = element.Closest(".ui-dialog-content"); if (dialog.Length > 0) dialog.Bind("dialogopen." + eventClass, delegate { dialog.Unbind("dialogopen." + eventClass); if (element.Is(":visible") && !executed) { executed = true; element.Unbind("shown." + eventClass); callback(); } }); element.Bind("shown." + eventClass, delegate { if (element.Is(":visible")) { element.Unbind("shown." + eventClass); if (!executed) { executed = true; callback(); } } }); } }
public static void ExecuteOnceWhenShown(jQueryObject element, Action callback) { autoIncrement++; string eventClass = "ExecuteOnceWhenShown" + autoIncrement; bool executed = false; if (element.Is(":visible")) { callback(); } else { jQueryObject uiTabs = element.Closest(".ui-tabs"); if (uiTabs.Length > 0) { uiTabs.Bind("tabsshow." + eventClass, delegate(jQueryEvent e) { if (element.Is(":visible")) { uiTabs.Unbind("tabsshow." + eventClass); if (!executed) { executed = true; element.Unbind("shown." + eventClass); callback(); } } }); } jQueryObject dialog; if (element.HasClass("ui-dialog")) { dialog = element.Children(".ui-dialog-content"); } else { dialog = element.Closest(".ui-dialog-content"); } if (dialog.Length > 0) { dialog.Bind("dialogopen." + eventClass, delegate { dialog.Unbind("dialogopen." + eventClass); if (element.Is(":visible") && !executed) { executed = true; element.Unbind("shown." + eventClass); callback(); } }); } element.Bind("shown." + eventClass, delegate { if (element.Is(":visible")) { element.Unbind("shown." + eventClass); if (!executed) { executed = true; callback(); } } }); } }
static PhotoManager() { jQuery.OnDocumentReady(delegate() { // let the gallery items be draggable jQuery.Select("li", jQuery.Select("#gallery")) .Plugin <DraggableObject>() .Draggable(new DraggableOptions( DraggableOption.Cancel, "a.ui-icon", // clicking an icon won't initiate dragging DraggableOption.Revert, "invalid", // when not dropped, the item will revert back to its initial position DraggableOption.Containment, jQuery.Select("#demo-frame").Length > 0 ? "#demo-frame" : "document", // stick to demo-frame if present DraggableOption.Helper, "clone", DraggableOption.Cursor, "move" )); // let the trash be droppable, accepting the gallery items jQuery.Select("#trash") .Plugin <DroppableObject>() .Droppable(new DroppableOptions( DroppableOption.Accept, "#gallery > li", DroppableOption.ActiveClass, "ui-state-highlight", DroppableEvents.Drop, new jQueryUIEventHandler <DropEvent>(delegate(jQueryEvent e, DropEvent ui) { DeleteImage(ui.Draggable); }))); // let the gallery be droppable as well, accepting items from the trash jQuery.Select("#gallery") .Plugin <DroppableObject>() .Droppable(new DroppableOptions( DroppableOption.Accept, "#trash li", DroppableOption.ActiveClass, "custom-state-active", DroppableEvents.Drop, new jQueryUIEventHandler <DropEvent>(delegate(jQueryEvent e, DropEvent ui) { RecycleImage(ui.Draggable); }))); // resolve the icons behavior with event delegation jQuery.Select("ul.gallery > li") .Click(delegate(jQueryEvent e) { jQueryObject item = jQuery.This; jQueryObject target = jQuery.FromElement(e.Target); if (target.Is("a.ui-icon-trash")) { DeleteImage(item); } else if (target.Is("a.ui-icon-zoomin")) { ViewLargerImage(target); } else if (target.Is("a.ui-icon-refresh")) { RecycleImage(item); } e.PreventDefault(); e.StopPropagation(); }); }); }
private static void Arrange(jQueryObject element) { #if DEBUG if (!element.Is("." + CssClassNameAdvancedLayout)) { throw new Exception("Element not marked for advanced layout."); } #endif // does element have its al state parsed? AdvancedLayoutState elementState = (AdvancedLayoutState)element.GetDataValue(DataNameLayoutState); if (elementState == null) { element.Data(DataNameLayoutState, elementState = ParseAdvancedLayout(element)); } // grab parents jQueryObject parent = element.Parent(); jQueryObject offsetParent = element.OffsetParent(); if (offsetParent.Length == 0 || parent.Length == 0) { return; } bool parentIsOffsetParent = offsetParent[0] == parent[0]; #if DEBUG if (!parentIsOffsetParent && element.Is(":visible")) { throw new Exception("Parent must use position:absolute|fixed|relative;."); } #endif if (!parentIsOffsetParent) { return; } // gather parent padding and client dimensions DimensionsAndPadding parentDimensions = null; parentDimensions = GetDimensionsAndPadding(parent); // detect parent's coordinates in offset-parent frame. float contentStartInOffsetSpaceX, contentStartInOffsetSpaceY; { if (parentIsOffsetParent) { // parent is offset parent. we know our local frame. contentStartInOffsetSpaceX = 0; contentStartInOffsetSpaceY = 0; } else { // experimental support for staticly positioned parent. parent.Prepend(_frameDetector); jQueryPosition parentContentFrameInDocumentSpace = _frameDetector.GetOffset(); jQueryPosition offsetParentFrameInDocumentSpace = offsetParent.GetOffset(); if (parentContentFrameInDocumentSpace != null && offsetParentFrameInDocumentSpace != null) { contentStartInOffsetSpaceX = parentContentFrameInDocumentSpace.Left - offsetParentFrameInDocumentSpace.Left - parentDimensions.PaddingLeft; contentStartInOffsetSpaceY = parentContentFrameInDocumentSpace.Top - offsetParentFrameInDocumentSpace.Top - parentDimensions.PaddingTop; } else { jQueryPosition contentStartInOffsetSpace = _frameDetector.Position(); if (contentStartInOffsetSpace != null) { contentStartInOffsetSpaceX = contentStartInOffsetSpace.Left - parentDimensions.PaddingLeft; contentStartInOffsetSpaceY = contentStartInOffsetSpace.Top - parentDimensions.PaddingTop; } else { contentStartInOffsetSpaceX = 0; contentStartInOffsetSpaceY = 0; } } _frameDetector.Remove(); } } double topBoundary = contentStartInOffsetSpaceY + parentDimensions.PaddingTop + elementState.Margin.Top; double bottomBoundary = contentStartInOffsetSpaceY + parentDimensions.ClientHeight - parentDimensions.PaddingBottom - elementState.Margin.Bottom; double leftBoundary = contentStartInOffsetSpaceX + parentDimensions.PaddingLeft + elementState.Margin.Left; double rightBoundary = contentStartInOffsetSpaceX + parentDimensions.ClientWidth - parentDimensions.PaddingRight - elementState.Margin.Right; // determine where to position int top = 0; int left = 0; int width = 0; int height = 0; switch (elementState.VerticalAlignment) { case VerticalAlignment.Top: height = Math.Round(elementState.Height - elementState.Padding.Top - elementState.Padding.Bottom); top = Math.Round(topBoundary); break; case VerticalAlignment.Center: height = Math.Round(elementState.Height - elementState.Padding.Top - elementState.Padding.Bottom); top = Math.Round(topBoundary * 0.5 + bottomBoundary * 0.5 - height * 0.5); break; case VerticalAlignment.Bottom: height = Math.Round(elementState.Height - elementState.Padding.Top - elementState.Padding.Bottom); top = Math.Round(contentStartInOffsetSpaceY + parentDimensions.ClientHeight - parentDimensions.PaddingBottom - elementState.Margin.Bottom - elementState.Height); break; case VerticalAlignment.Stretch: height = Math.Round(bottomBoundary - topBoundary - elementState.Padding.Top - elementState.Padding.Bottom); top = Math.Round(topBoundary); break; } switch (elementState.HorizontalAlignment) { case HorizontalAlignment.Left: width = Math.Round(elementState.Width - elementState.Padding.Left - elementState.Padding.Right); left = Math.Round(leftBoundary); break; case HorizontalAlignment.Center: width = Math.Round(elementState.Width - elementState.Padding.Left - elementState.Padding.Right); left = Math.Round(leftBoundary * 0.5 + rightBoundary * 0.5 - width * 0.5); break; case HorizontalAlignment.Right: width = Math.Round(elementState.Width - elementState.Padding.Left - elementState.Padding.Right); left = Math.Round(contentStartInOffsetSpaceX + parentDimensions.ClientWidth - parentDimensions.PaddingRight - elementState.Margin.Right - elementState.Width); break; case HorizontalAlignment.Stretch: width = Math.Round(rightBoundary - leftBoundary - elementState.Padding.Left - elementState.Padding.Right); left = Math.Round(leftBoundary); break; } if (width <= 0) { width = 0; } if (height <= 0) { height = 0; } element.CSS( new Dictionary( "position", "absolute", "top", top, "left", left, "width", width, "height", height, "padding-top", elementState.Padding.Top, "padding-right", elementState.Padding.Right, "padding-bottom", elementState.Padding.Bottom, "padding-left", elementState.Padding.Left ) ); }
/// <summary> /// Return the current value of the checkbox control as a Boolean. /// </summary> /// <returns></returns> private bool GetValue() { return(input.Is(":checked")); }