Download | Usage | Constructor | Properties and Methods | Examples | Revision History
A DP_ObCollectionOrdered is used to manage multiple instances of a JavaScript object as a single logical unit where the order (“rank”) of the instances matter. Object instances stored in the collection are called “Members” of the collection. The DP_ObCollectionOrdered assumes the following:
- The DP_ObCollectionOrdered maintains the order (rank) of it members.
- Member rank begins at zero (just like JavaScript arrays).
- Member rank is manageable through exposed methods.
- Optionally all members of an DP_ObCollectionOrdered can be validated for type.
- A property of the Member object(s) must contain a unique Key to be used as the identifier. If the collection allows multiple types to be added they must all share a common property for identification.
Use the simpler DP_ObCollection if your application does not require members to be maintained in order.
This component requires a JavaScript (ECMAScript) 1.3 (or better) environment and has been tested successfully on Internet Explorer 6+, Firefox 1+ and Opera 9+.
Download
The component is available from GitHub:
- Direct Download (Master Branch, Zip format)
- GitHub Repository Home
All downloads and code are covered by our Source Code Policy.
Usage
The library consists of a single JavaScript file with a .JS extension.
Importing the Library
The library must be imported before it is used. To import the library use the <script> tag. For example:
<script type="text/javascript" src="DP_ObCollectionOrdered.js"></script>
Your path may vary depending on the location of the script on your server.
Creating and Accessing the Object
Once the library has been imported you may create DP_ObCollectionOrdered objects as you would any other JavaScript object. For example:
var MyCollection = new DP_ObCollectionOrdered(...);
See the Constructor section for more information.
Once you have created an instance of the object you can use the methods and properties provided to add, manipulate, delete and access members and information about them. See the Examples section for some sample code.
Constructor
DP_ObCollectionOrdered()
The constructor. Used to create a new DP_ObCollectionOrdered instance.
Method Signature
new DP_ObCollectionOrdered(MemberKeyName, [MemberType])
Arguments
This method has two arguments:
- MemberKeyName: String, Required. The object property to be used as the unique identifier for DP_ObCollectionOrdered members.
- MemberType: Object Constructor reference, Optional. If a reference to an object constructor is passed all objects added to the collection will be validated against that type. Use the constructor reference (for example “Option.constructor”) or a reference to a custom constructor function. Note that Mozilla-based browsers require that the constructor reference comes from an instantiated object (for example “new Option().constructor” rather than simply “Option.constructor”).
Return
A reference to the new DP_ObCollectionOrdered instance.
Properties and Methods
There are several properties available in an ObOrderedCollection. However it is recommended that all access to these properties occur via their related method calls.
ObCollection properties available:
- Members: A JavaScript array which contains references to all members of the collection. Access to this property is exposed via the getAll() method.
- MemberType: A reference to the Member constructor used to validate member type. Access to this property is exposed via the getMemberType() method.
- MemberKeyName: The name of the Member property to use as the unique member key. Access to this property is exposed via the getMemberKeyName() method.
- CreationDate: A date/time reference referering to the instantiation time of the collection. Access to this property is exposed via the CreationDate() method.
ObCollection methods available:
- add()
- demote()
- demoteAt()
- clear()
- drop()
- dropAll()
- get()
- getAll()
- getAt()
- getCount()
- getCreationDate()
- getKeys()
- getMemberKeyName()
- getMemberType()
- getRank()
- isEmpty()
- isIndexInRange()
- isMember()
- isValidType()
- promote()
- promoteAt()
- setRank()
- setRankAt()
- sort()
- sortByProp()
- swap()
- swapAt()
Note that in method/function signatures a pipe (“|”) indicates “OR” while arguments in square brackets are optional.
add()
Adds a member to the DP_ObCollectionOrdered.
Method Signature
add(NewMember, [AllowOverwrite])
Arguments
This method has two arguments:
- NewMember: Object. A reference to the object to be placed in the DP_ObCollectionOrdered.
- AllowOverwrite: Boolean, Optional (defaults to False). If true will allow the new Member to replace an existing Member with the same key value.
Return
Boolean. True if the new member was added, false if not (due to type validation for example).
demote()
Moves a member down in rank (increases its index). If the member is already the last in the collection no action will be taken. Ranks are numbered from zero.
Method Signature
demote(MemberKey | Object, [Steps])
Arguments
This method has three arguments:
- MemberKey: String, Required. The member key of the object to promote.
- Object: Object, Required. A reference to the object to demote.
- Steps: Number, Optional (defaults to 1). The number of ranks to demote the object.
Return
Number. The new rank of the member.
demoteAt()
Moves the Member at the specified index down in rank (increases its index). If the member is already the last in the collection no action will be taken. Ranks are numbered from zero.
Method Signature
demoteAt(Rank, [Steps])
Arguments
This method has two arguments:
- Rank: Number, Required. The rank of the member to demote.
- Steps: Number, Optional (defaults to 1). The number of ranks to demote the object.
Return
Number. The new rank of the member.
drop()
Drops a member from the DP_ObCollectionOrdered.
Method Signature
drop(MemberKey)
Arguments
This method has one argument:
- MemberKey: String, Required. The member key of the object to return.
Return
Boolean. True if the member specified was in the collection to begin with, false if not.
dropAll() or clear()
Drops all members from the DP_ObCollectionOrdered.
Method Signature
dropAll() or clear()
Arguments
This method has no arguments.
Return
Boolean. True is the only return.
get()
Gets a specific member from the collection.
Method Signature
get(MemberKey)
Arguments
This method has one argument:
- MemberKey: String, Required. The member key of the object to return.
Return
Object. A reference to the member object specified.
getAll()
Gets all of the members in the DP_ObCollectionOrdered.
Method Signature
getAll()
Arguments
This method has no arguments.
Return
Object. A reference to the Members array which itself contains references to all objects in the DP_ObCollectionOrdered.
getAt()
Returns the Member at the specified rank. Ranks are numbered from zero.
Method Signature
getAt(Rank)
Arguments
- Rank: Number, Required. The rank of the object to return.
Return
Object. A reference to object at the specified rank.
getCount()
Returns a count of the current DP_ObCollectionOrdered members.
Method Signature
getCount()
Arguments
This method has no arguments.
Return
Number. The current number of DP_ObCollectionOrdered members.
getCreationDate()
Returns the date/time that the DP_ObCollectionOrdered was instantiated.
Method Signature
getCreationDate()
Arguments
This method has no arguments.
Return
DateTime
getKeys()
Returns an array of all the member key values.
Method Signature
getKeys()
Arguments
This method has no arguments.
Return
Array. All of the member key values.
getMemberKeyName()
Returns the name of the property used as the unique key.
Method Signature
getMemberKeyName()
Arguments
This method has no arguments.
Return
String. The Member key property name.
getMemberType()
Returns the type of the Member object (a reference to the object constructor).
Method Signature
getMemberType()
Arguments
This method has no arguments.
Return
Javascript function reference. The constructor for the specified Member object.
getRank()
Returns the rank of the specified member. Ranks are numbered from zero.
Method Signature
getRank(MemberKey)
getRank(Object)
Arguments
This method has two arguments:
- MemberKey: String, Required. The member key of the object to examine.
- Object: Object, Required. A reference to the object to examine.
Return
Number. The rank of the object (or null if it doesn’t exist in the collection).
isEmpty()
Determines if the DP_ObCollectionOrdered is empty.
Method Signature
isEmpty()
Arguments
This method has no arguments.
Return
Boolean. True if no members exist, false otherwise.
isIndexInRange()
Checks to see if the passed integer is in range of the current collection. Ranks are numbered from zero.
Method Signature
isIndexInRange(Index)
Arguments
This method has one argument:
- Index: Number, Required. The index to check.
Return
Boolean. True if the passed index is in range, false if not.
isMember()
Determines if the specified member is in the collection.
Method Signature
isMember()
Arguments
This method has one argument:
- MemberKey: String, Required. The member key of the object to return.
Return
Boolean. True if the member exists in the DP_ObCollectionOrdered, false if not.
isValidType()
Determines if the passed object is of the same type defined for the DP_ObCollectionOrdered.
Method Signature
isValidType(Object)
Arguments
This method has one argument:
- Object: Object, Required. A reference to an object.
Return
Boolean. True if the object is of the correct type or the collection can accept any type, false if not.
promote()
Moves a member up in rank (decreases its index). If the member is already the first in the collection no action will be taken. Ranks are numbered from zero.
Method Signature
promote(MemberKey | Object, [Steps])
Arguments
This method has three arguments:
- MemberKey: String, Required. The member key of the object to promote.
- Object: Object, Required. A reference to the object to promote.
- Steps: Number, Optional (defaults to 1). The number of ranks to promote the object.
Return
Number. The new rank of the member.
promoteAt()
Moves the Member at the specified index up in rank (decreases its index). If the member is already the first in the collection no action will be taken. Ranks are numbered from zero.
Method Signature
promoteAt(Rank, [Steps])
Arguments
This method has two arguments:
- Rank: Number, Required. The rank of the member to promote.
- Steps: Number, Optional (defaults to 1). The number of ranks to promote the object.
Return
Number. The new rank of the member.
setRank()
Sets the rank of a member (removes it from one position and inserts in another). Ranks are numbered from zero.
Method Signature
setRank(MemberKey, NewRank)
setRank(Object, NewRank)
Arguments
This method has three arguments:
- MemberKey: String, Required. The member key of the object to promote.
- NewRank: Number, Required. The new rank of the specified member.
- Object: Object, Required. A reference to the object to promote.
Return
Boolean. True if the setRank was successful, false if not (for example if the new rank was out of range).
setRankAt()
Sets the rank of the member at the specified index (Removes it from one position and inserts in another). Ranks are numbered from zero.
Method Signature
setRankAt(Rank, NewRank)
Arguments
This method has two arguments:
- Rank: Number, Required. The numbered rank of the member to set.
- NewRank: Number, Required. The new rank of the specified member.
Return
Boolean. True if the setRank was successful, false if not (for example if the new rank was out of range).
sort()
Sorts the collection using a developer-specified sorting function. The function specified should meet the requirements of the core JavaScript Arry.sort() function.
Method Signature
sort(OrderFunction)
Arguments
This method has one argument:
- OrderFunction: Function, Required. The function to use for sorting the collection members. This function must meet the requirements of core JavaScript Array.sort() function.
Return
Boolean. True upon completion.
sortByProp()
Sorts the collection by a member property.
Method Signature
sortByProp(Property, SortType, SortOrder)
Arguments
This method has three arguments:
- Property: String, Required. The member property to sort the collection by.
- SortType: String, Required. Defaults to “Alpha”. Values can be “Numeric” (sort is numeric), “Alpha” (sort is alphabetic, all lowercase letters are sorted before all uppercase letters) or “AlphaNoCase” (sort is alphabetic regardless of letter case).
- SortOrder: String, Required. Defaults to “Asc”. Values can be “Asc” (sort in ascending order) or “Desc” (sort in descending order).
Return
Boolean. True upon completion.
swap()
Exchanges (swaps) the ranks of two members. Ranks are numbered from zero.
Method Signature
swap(MemberKey1, MemberKey2)
Arguments
This method has two arguments:
- MemberKey1: Number, Required. The MemberKey of the first member to swap.
- MemberKey2: Number, Required. The MemberKey of the second member to swap.
Return
Boolean. True upon completion.
swapAt()
Exchanges (swaps) the ranks of the two members at the specified ranks. Ranks are numbered from zero.
Method Signature
swapAt(Rank1, Rank2)
Arguments
This method has two arguments:
- Rank1: Number, Required. The numbered rank of the first member to swap.
- Rank2: Number, Required. The numbered rank of the second member to swap.
Return
Boolean. True upon completion.
Examples
Examples of DP_ObCollectonOrdered (examples will open in a new window):
- A Managable Select List: Shows how to use the component to easily perform complex select-list management.
- Sort a Table by Column Values: An example using the component to dyamically sort a table of values.
Revision History
June 8, 2013
- Initial GITHUB release.
August 22, 2005
- Changed the name of the component to “DP_ObCollectionOrdered”.
- Cleaned up the method declaration procedure used in the object.
August 27, 2004
- Fixed several bugs with typeless collections.
- Reversed position of the contructor arguments to allow the “type” argument to be optional.
August 18, 2004
- Added ability to have typeless collections.
August 11, 2004
- Added sort() and sortByProp() methods.
July 26, 2004
- Initial Release
1 Comment
Comments are closed.