- Aurigma Graphics Mill 5.5 for .NET
- Introduction
- What's New?
- Overview of Features
- Getting Started
- Programming with Graphics Mill for .NET
- File Formats
- Graphics Mill for .NET Add-ons
- Class Library Reference
- Aurigma.GraphicsMill Namespace
- Aurigma.GraphicsMill.AjaxControls Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.Math Namespace
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.RedoUndo Namespace
- Aurigma.GraphicsMill.Codecs Namespace
- Aurigma.GraphicsMill.Drawing Namespace
- Aurigma.GraphicsMill.Licensing Namespace
- Aurigma.GraphicsMill.Transforms Namespace
- Aurigma.GraphicsMill.WebControls Namespace
- Aurigma.GraphicsMill.WinControls Namespace
- BitmapViewer Class
- ClickDragCreateDesigner Class
- ClosedFreehandVObjectCreateDesigner Class
- ClosedPolyLineVObjectCreateDesigner Class
- ColumnChangedEventArgs Class
- ColumnChangedEventHandler Delegate
- ColumnChangeType Enumeration
- ColumnClickEventArgs Class
- ColumnClickEventHandler Delegate
- ColumnEventArgs Class
- ColumnInsertingEventArgs Class
- ColumnInsertingEventHandler Delegate
- ColumnRemovingEventArgs Class
- ColumnRemovingEventHandler Delegate
- ColumnsEventArgs Class
- ColumnsInsertedEventArgs Class
- ColumnsInsertedEventHandler Delegate
- ColumnsRemovedEventArgs Class
- ColumnsRemovedEventHandler Delegate
- CompositeVObject Class
- CompositeVObjectEditDesigner Class
- ControlPoint Class
- ControlPointCollection Class
- ControlPointType Enumeration
- CrossedEllipseControlPoint Class
- DefaultDesigner Class
- DesignerChangedEventArgs Class
- DesignerChangedEventHandler Delegate
- DiamondControlPoint Class
- DragVObjectAction Class
- EllipseControlPoint Class
- EllipseRubberband Class
- EllipseVObject Class
- EllipseVObjectCreateDesigner Class
- FreehandVObject Class
- FreehandVObjectCreateDesigner Class
- GenericVObjectEditDesigner Class
- IconChangedEventArgs Class
- IconChangedEventHandler Delegate
- IControlPointCollection Interface
- IControlPointsProvider Interface
- ICoordinateMapper Interface
- IDesigner Interface
- IImageList Interface
- IListItem Interface
- ImageFitMode Enumeration
- ImagePrintDocument Class
- ImageRemovedEventArgs Class
- ImageRemovedEventHandler Delegate
- ImageVObject Class
- ImageVObjectCreateDesigner Class
- INavigator Interface
- InvalidationTarget Class
- IQueueItem Interface
- IRubberband Interface
- ItemActionRequestEventArgs Class
- ItemDragEventArgs Class
- ItemDragEventHandler Delegate
- ItemEventArgs Class
- ItemInsertingEventArgs Class
- ItemInsertingEventHandler Delegate
- ItemRemovingEventHandler Delegate
- ItemsEventArgs Class
- ItemsInsertedEventArgs Class
- ItemsInsertedEventHandler Delegate
- ItemsRemovedEventArgs Class
- ItemsRemovedEventHandler Delegate
- IUserInputController Interface
- IVObject Interface
- IVObjectAction Interface
- IVObjectActionCollection Interface
- IVObjectHost Interface
- JointControlPointsProvider Class
- JointVObjectActionCollection Class
- LabelEditedEventArgs Class
- LabelEditedEventHandler Delegate
- LabelEditingEventHandler Delegate
- Layer Class
- LayerChangedEventArgs Class
- LayerChangedEventHandler Delegate
- LayerChangeType Enumeration
- LayerCollection Class
- LayerEventArgs Class
- LayerEventHandler Delegate
- LayerRemovedEventArgs Class
- LayerRemovedEventHandler Delegate
- LineVObject Class
- LineVObjectCreateDesigner Class
- ListColumn Class
- ListColumnCollection Class
- ListColumnTypeConverter Class
- ListItem Class
- ListItemCollection Class
- MaskStyle Enumeration
- MouseEventArgs Class
- MouseEventHandler Delegate
- MultiLayerViewer Class
- MultiLayerViewerInvalidationTarget Class
- PanNavigator Class
- PathControlPoint Class
- PathVObject Class
- PathVObjectCreateDesigner Class
- Pidl Class
- PidlType Enumeration
- PlacementMode Enumeration
- PolylineVObject Class
- PolylineVObject.MoveNodeAction Class
- PolyLineVObjectCreateDesigner Class
- PrintOptions Class
- PrintPlaceholder Class
- QueryImageEventArgs Class
- QueryImageEventHandler Delegate
- QueueItemMethodState Enumeration
- QueueManager Class
- RectangleChangeMode Enumeration
- RectangleController Class
- RectangleControlPoint Class
- RectangleEventArgs Class
- RectangleEventHandler Delegate
- RectangleRubberband Class
- RectangleVObject Class
- RectangleVObjectCreateDesigner Class
- ResizeMode Enumeration
- ResizeVObjectAction Class
- RotateVObjectAction Class
- ScrollBarsStyle Enumeration
- ScrollValue Enumeration
- SkewVObjectAction Class
- StandardFolder Enumeration
- StateChangedEventArgs Class
- StateChangedEventHandler Delegate
- StateChangingEventArgs Class
- StateChangingEventHandler Delegate
- StateType Enumeration
- TextChangedEventArgs Class
- TextChangedEventHandler Delegate
- TextVObject Class
- TextVObject.ChangeTextAreaAction Class
- TextVObjectCreateDesigner Class
- ThumbnailListItem Class
- ThumbnailListView Class
- UserInputController Class
- View Enumeration
- ViewChangedEventArgs Class
- ViewChangedEventHandler Delegate
- ViewerBase Class
- ViewportAlignment Enumeration
- VirtualListView Class
- VObject Class
- VObjectAction Class
- VObjectActionCollection Class
- VObjectCollection Class
- VObjectDrawMode Enumeration
- VObjectEventArgs Class
- VObjectEventHandler Delegate
- VObjectsRubberband Class
- WorkspaceBackgroundStyle Enumeration
- ZoomInNavigator Class
- ZoomMode Enumeration
- ZoomOutNavigator Class
- ZoomQuality Enumeration
- ZoomRectangleNavigator Class
- GraphicsMill Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.Math Namespace (Client Class Library)
- Aurigma.GraphicsMill.AjaxControls.VectorObjects.RedoUndo Namespace (Client Class Library)
- Samples
- Licensing
- Copyright Notices
IQueueItem Interface
This interface represents list items which can be loaded to the ThumbnailListView control asynchronously.
Namespace:
Aurigma.GraphicsMill.WinControls
Assembly:
Aurigma.GraphicsMill.WinControls (in Aurigma.GraphicsMill.WinControls.dll)
Syntax
Public Interface IQueueItem
public interface IQueueItem
Remarks
If you implement your own thumbnail list items, you can implement this interface to be able to load them to the ThumbnailListView control asynchronously. It is important if you are going to load a big number of your items in the control at the same time. In synchronous mode the application will freeze until all items will be loaded. Obviously it is inconvenient to the end user.
This interface is based on concepts of methods. The method is a code which evaluates a piece of item data. Each method is identified by the zero-based index. When the control starts loading items, it creates several threads, as many as many methods items have. After that it organizes all items into queues (one queue for each thread). It launches evaluation of the appropriate method for first item in the queue for each threads. When it completes, it takes the next item in the queue, etc.
For example, if you implement an item which displays goods from the warehouse database, and you extract its name, description, photo, and price, you can have 4 methods: one for each piece of data. The method 0 will evaluate name, the method 1 - description, the method 2 - photo, and the method 3 - price.
Implementation of this interface is quite straightforward. First of all, you should implement the MethodCount method. It should return a number of methods this item supports. In our example it will be 4.
The EvaluateMethod(Int32) should get the necessary piece of data (according to the specified method index). In our example, you should use the similar switch statement:
// ...
switch(methodIndex)
{
case 0:
// ... Fetch item name
break;
case 1:
// ... Fetch item description
break;
case 2:
// ... Fetch item photo
break;
case 3:
// ... Fetch item price
break;
}
// ...
For each method you should return value which indicates whether the method has been started or completed. This way the control will be able to determine whether to proceed with the next item. Use the GetMethodState(Int32) method for it.
You may wonder how to affect the queue when you implement the list item. For example, if the control request an icon or thumbnail of the item, it makes sense to pop the item to the head of the queue. To do it, use the MoveToHead(IQueueItem, Int32) method of the QueueManager stored in the parent of the item.