summaryrefslogtreecommitdiff
path: root/web-ui/app/js/helpers/iterator.js
diff options
context:
space:
mode:
Diffstat (limited to 'web-ui/app/js/helpers/iterator.js')
-rw-r--r--web-ui/app/js/helpers/iterator.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/web-ui/app/js/helpers/iterator.js b/web-ui/app/js/helpers/iterator.js
new file mode 100644
index 00000000..9d8358a7
--- /dev/null
+++ b/web-ui/app/js/helpers/iterator.js
@@ -0,0 +1,43 @@
+define(function () {
+
+ return Iterator;
+
+ function Iterator(elems, startingIndex) {
+
+ this.index = startingIndex || 0;
+ this.elems = elems;
+
+ this.hasPrevious = function () {
+ return this.index != 0;
+ };
+
+ this.hasNext = function () {
+ return this.index < this.elems.length - 1;
+ };
+
+ this.previous = function () {
+ return this.elems[--this.index];
+ };
+
+ this.next = function () {
+ return this.elems[++this.index];
+ };
+
+ this.current = function () {
+ return this.elems[this.index];
+ };
+
+ this.hasElements = function () {
+ return this.elems.length > 0;
+ };
+
+ this.removeCurrent = function () {
+ var removed = this.current(),
+ toRemove = this.index;
+
+ !this.hasNext() && this.index--;
+ this.elems.remove(toRemove);
+ return removed;
+ };
+ }
+}); \ No newline at end of file