summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js')
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js120
1 files changed, 120 insertions, 0 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js
new file mode 100644
index 0000000000..61f0be7ef1
--- /dev/null
+++ b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js
@@ -0,0 +1,120 @@
+/* ************************************************************************
+
+ qooxdoo - the new era of web development
+
+ http://qooxdoo.org
+
+ Copyright:
+ 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
+
+ License:
+ LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
+
+ Authors:
+ * Sebastian Werner (wpbasti)
+ * Andreas Ecker (ecker)
+
+************************************************************************ */
+
+/* ************************************************************************
+
+
+
+************************************************************************ */
+
+/*!
+ Helper for qx.manager.selection.SelectionManager, contains data for selections
+*/
+qx.OO.defineClass("qx.type.Selection", qx.core.Object,
+function(vManager)
+{
+ qx.core.Object.call(this);
+
+ this._manager = vManager;
+ this.removeAll();
+});
+
+
+
+
+
+/*
+---------------------------------------------------------------------------
+ USER METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.add = function(oItem) {
+ this._storage[this.getItemHashCode(oItem)] = oItem;
+}
+
+qx.Proto.remove = function(oItem) {
+ delete this._storage[this.getItemHashCode(oItem)];
+}
+
+qx.Proto.removeAll = function() {
+ this._storage = {};
+}
+
+qx.Proto.contains = function(oItem) {
+ return this.getItemHashCode(oItem) in this._storage;
+}
+
+qx.Proto.toArray = function()
+{
+ var res = [];
+
+ for (var key in this._storage) {
+ res.push(this._storage[key]);
+ }
+
+ return res;
+}
+
+qx.Proto.getFirst = function()
+{
+ for (var key in this._storage) {
+ return this._storage[key];
+ }
+}
+
+qx.Proto.getChangeValue = function()
+{
+ var sb = [];
+
+ for (var hc in this._storage) {
+ sb.push(hc);
+ }
+
+ sb.sort();
+ return sb.join(";");
+}
+
+qx.Proto.getItemHashCode = function(oItem) {
+ return this._manager.getItemHashCode(oItem);
+}
+
+qx.Proto.isEmpty = function() {
+ return qx.lang.Object.isEmpty(this._storage);
+}
+
+
+
+
+/*
+---------------------------------------------------------------------------
+ DISPOSER
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.dispose = function()
+{
+ if (this.getDisposed()) {
+ return;
+ }
+
+ this._storage = null;
+ this._manager = null;
+
+ qx.core.Object.prototype.dispose.call(this);
+} \ No newline at end of file