summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2007-09-10 03:44:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:05:50 -0500
commit15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7 (patch)
treec5bcb824e04cb1de4cccb07a148c113ff1831298 /webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form
parent37de963f67a1331b6402f901d2bda79b7119a155 (diff)
downloadsamba-15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7.tar.gz
samba-15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7.tar.bz2
samba-15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7.zip
r25051: Move SWAT back to the old-style form-submit modal.
The Web 2.0, async client tools were really interesting, but without developer backing they remain impossible to support into a release. The most interesting app was the LDB browser, and I intend to replace this with phpLdapAdmin, preconfigured for Apache during provision. This also removes the need to 'compile' SWAT on SVN checkouts. Andrew Bartlett (This used to be commit cda965e908055d45b1c05bc29cc791f7238d2fae)
Diffstat (limited to 'webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form')
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js208
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js212
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js837
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js1037
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js95
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js385
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js117
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js33
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js187
-rwxr-xr-xwebapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js129
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js694
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js58
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js540
13 files changed, 0 insertions, 4532 deletions
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js
deleted file mode 100644
index 858a1b8906..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-/**
- * A button.
- *
- * @state {abandoned}
- * @state {over}
- * @state {pressed}
- */
-qx.OO.defineClass("qx.ui.form.Button", qx.ui.basic.Atom,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
-{
- // ************************************************************************
- // INIT
- // ************************************************************************
- qx.ui.basic.Atom.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
- // Make focusable
- this.setTabIndex(1);
-
-
- // ************************************************************************
- // MOUSE EVENTS
- // ************************************************************************
- this.addEventListener("mouseover", this._onmouseover);
- this.addEventListener("mouseout", this._onmouseout);
- this.addEventListener("mousedown", this._onmousedown);
- this.addEventListener("mouseup", this._onmouseup);
-
-
- // ************************************************************************
- // KEY EVENTS
- // ************************************************************************
- this.addEventListener("keydown", this._onkeydown);
- this.addEventListener("keyup", this._onkeyup);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "button" });
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e)
-{
- if (e.getTarget() != this) {
- return;
- }
-
- if (this.hasState("abandoned"))
- {
- this.removeState("abandoned");
- this.addState("pressed");
- }
-
- this.addState("over");
-}
-
-qx.Proto._onmouseout = function(e)
-{
- if (e.getTarget() != this) {
- return;
- }
-
- this.removeState("over");
-
- if (this.hasState("pressed"))
- {
- // Activate capturing if the button get a mouseout while
- // the button is pressed.
- this.setCapture(true);
-
- this.removeState("pressed");
- this.addState("abandoned");
- }
-}
-
-qx.Proto._onmousedown = function(e)
-{
- if (e.getTarget() != this || !e.isLeftButtonPressed()) {
- return;
- }
-
- this.removeState("abandoned");
- this.addState("pressed");
-}
-
-qx.Proto._onmouseup = function(e)
-{
- this.setCapture(false);
-
- // We must remove the states before executing the command
- // because in cases were the window lost the focus while
- // executing we get the capture phase back (mouseout).
- var hasPressed = this.hasState("pressed");
- var hasAbandoned = this.hasState("abandoned");
-
- if (hasPressed) {
- this.removeState("pressed");
- }
-
- if (hasAbandoned) {
- this.removeState("abandoned");
- }
-
- if (!hasAbandoned)
- {
- this.addState("over");
-
- if (hasPressed) {
- this.execute();
- }
- }
-}
-
-qx.Proto._onkeydown = function(e)
-{
- switch(e.getKeyIdentifier())
- {
- case "Enter":
- case "Space":
- this.removeState("abandoned");
- this.addState("pressed");
- }
-}
-
-qx.Proto._onkeyup = function(e)
-{
- switch(e.getKeyIdentifier())
- {
- case "Enter":
- case "Space":
- if (this.hasState("pressed"))
- {
- this.removeState("abandoned");
- this.removeState("pressed");
- this.execute();
- }
- }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return;
- }
-
- // ************************************************************************
- // MOUSE EVENTS
- // ************************************************************************
- this.removeEventListener("mouseover", this._onmouseover, this);
- this.removeEventListener("mouseout", this._onmouseout, this);
- this.removeEventListener("mousedown", this._onmousedown, this);
- this.removeEventListener("mouseup", this._onmouseup, this);
-
-
- // ************************************************************************
- // KEY EVENTS
- // ************************************************************************
- this.removeEventListener("keydown", this._onkeydown, this);
- this.removeEventListener("keyup", this._onkeyup, this);
-
-
- // ************************************************************************
- // SUPER CLASS
- // ************************************************************************
- return qx.ui.basic.Atom.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js
deleted file mode 100644
index 8a8c581655..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.CheckBox", qx.ui.basic.Atom,
-function(vText, vValue, vName, vChecked)
-{
- qx.ui.basic.Atom.call(this, vText);
-
- this.setTabIndex(1);
- this.setPadding(2, 3);
-
- this._createIcon();
-
- if (vValue != null) {
- this.setValue(vValue);
- }
-
- if (vName != null) {
- this.setName(vName);
- }
-
- if (vChecked != null) {
- this.setChecked(vChecked);
- } else {
- this.setChecked(false);
- }
-
- this.addEventListener("click", this._onclick);
- this.addEventListener("keydown", this._onkeydown);
- this.addEventListener("keyup", this._onkeyup);
-});
-
-/*
----------------------------------------------------------------------------
- MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.OO.removeProperty({ name : "icon" });
-qx.OO.removeProperty({ name : "disabledIcon" });
-
-/*!
- The HTML name of the form element used by the widget
-*/
-qx.OO.addProperty({ name : "name", type : "string" });
-
-/*!
- The HTML value of the form element used by the widget
-*/
-qx.OO.addProperty({ name : "value", type : "string" });
-
-/*!
- If the widget is checked
-*/
-qx.OO.addProperty({ name : "checked", type : "boolean", getAlias : "isChecked" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- ICON HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.INPUT_TYPE = "checkbox";
-
-qx.Proto._createIcon = function()
-{
- var i = this._iconObject = new qx.ui.form.InputCheckSymbol;
-
- i.setType(this.INPUT_TYPE);
- i.setChecked(this.isChecked());
- i.setEnabled(this.isEnabled());
- i.setAnonymous(true);
-
- this.addAtBegin(i);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
- if (this._iconObject) {
- this._iconObject.setChecked(propValue);
- }
-
- return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
- if (this._iconObject) {
- this._iconObject.setEnabled(propValue);
- }
-
- return qx.ui.basic.Atom.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._handleIcon = function()
-{
- switch(this.getShow())
- {
- case qx.ui.basic.Atom.SHOW_ICON:
- case qx.ui.basic.Atom.SHOW_BOTH:
- this._iconIsVisible = true;
- break;
-
- default:
- this._iconIsVisible = false;
- }
-
- if (this._iconIsVisible)
- {
- this._iconObject ? this._iconObject.setDisplay(true) : this._createIcon();
- }
- else if (this._iconObject)
- {
- this._iconObject.setDisplay(false);
- }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT-HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onclick = function(e) {
- this.toggleChecked();
-};
-
-
-qx.Proto._onkeydown = function(e)
-{
- if(e.getKeyIdentifier() == "Enter" && !e.isAltPressed()) {
- this.toggleChecked();
- }
-};
-
-
-qx.Proto._onkeyup = function(e)
-{
- if(e.getKeyIdentifier() == "Space") {
- this.toggleChecked();
- }
-};
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if(this.getDisposed()) {
- return;
- }
-
- this.removeEventListener("click", this._onclick);
- this.removeEventListener("keydown", this._onkeydown);
- this.removeEventListener("keyup", this._onkeyup);
-
- return qx.ui.basic.Atom.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js
deleted file mode 100644
index 08a45826c0..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js
+++ /dev/null
@@ -1,837 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-#embed(qx.widgettheme/arrows/down.gif)
-
-************************************************************************ */
-
-/**
- * A combo-box for qooxdoo.
- *
- * The major additional feature compared to typical select fields is that it allows
- * it to be editable. Also images are supported inside the popup list.
- *
- * Features:
- * <ul>
- * <li>Editable text field</li>
- * <li>Complete key-navigation</li>
- * <li>Images inside the list</li>
- * <li>Images and text inside the list</li>
- * </ul>
- *
- * @event beforeInitialOpen {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.form.ComboBox", qx.ui.layout.HorizontalBoxLayout,
-function()
-{
- qx.ui.layout.HorizontalBoxLayout.call(this);
-
-
- // ************************************************************************
- // LIST
- // ************************************************************************
- var l = this._list = new qx.ui.form.List;
-
- l.setAppearance("combo-box-list");
-
-
- // ************************************************************************
- // MANAGER
- // ************************************************************************
- var m = this._manager = this._list.getManager();
-
- m.setMultiSelection(false);
- m.setDragSelection(false);
-
-
- // ************************************************************************
- // POPUP
- // ************************************************************************
- var p = this._popup = new qx.ui.popup.Popup;
-
- p.setAppearance("combo-box-popup");
- p.setAutoHide(false);
-
- p.add(l);
-
-
- // ************************************************************************
- // TEXTFIELD
- // ************************************************************************
- var f = this._field = new qx.ui.form.TextField;
-
- f.setAppearance("combo-box-text-field");
- f.setTabIndex(-1);
-
- this.add(f);
-
-
- // ************************************************************************
- // BUTTON
- // ************************************************************************
-
- // Use qx.ui.basic.Atom instead of qx.ui.form.Button here to omit the registration
- // of the unneeded and complex button events.
- var b = this._button = new qx.ui.basic.Atom(null, "widget/arrows/down.gif");
-
- b.setAppearance("combo-box-button");
- b.setTabIndex(-1);
-
- this.add(b);
-
-
- // ************************************************************************
- // BEHAVIOR
- // ************************************************************************
- this.setTabIndex(1);
- this.setEditable(false);
-
-
- // ************************************************************************
- // WIDGET MOUSE EVENTS
- // ************************************************************************
- this.addEventListener("mousedown", this._onmousedown);
- this.addEventListener("mouseup", this._onmouseup);
- this.addEventListener("mouseover", this._onmouseover);
- this.addEventListener("mousewheel", this._onmousewheel);
-
-
- // ************************************************************************
- // WIDGET KEY EVENTS
- // ************************************************************************
- this.addEventListener("keydown", this._onkeydown);
- this.addEventListener("keypress", this._onkeypress);
- this.addEventListener("keyinput", this._onkeyinput);
-
-
- // ************************************************************************
- // WIDGET STATE EVENTS
- // ************************************************************************
- this.addEventListener("beforeDisappear", this._onbeforedisappear);
-
-
- // ************************************************************************
- // CHILDREN EVENTS
- // ************************************************************************
- this._popup.addEventListener("appear", this._onpopupappear, this);
- this._field.addEventListener("input", this._oninput, this);
-
-
- // ************************************************************************
- // DOCUMENT EVENTS
- // ************************************************************************
- var vDoc = qx.ui.core.ClientDocument.getInstance();
- vDoc.addEventListener("windowblur", this._onwindowblur, this);
-
-
- // ************************************************************************
- // REMAPPING
- // ************************************************************************
- this.remapChildrenHandlingTo(l);
-});
-
-
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "combo-box" });
-
-qx.OO.addProperty({ name: "editable", type: "boolean", getAlias: "isEditable" });
-qx.OO.addProperty({ name: "selected", type: "object", instance : "qx.ui.form.ListItem" });
-qx.OO.addProperty({ name: "value", type : "string" });
-qx.OO.addProperty({ name: "pagingInterval", type: "number", defaultValue: 10 });
-
-
-
-
-/*
----------------------------------------------------------------------------
- UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
- return this._manager;
-}
-
-qx.Proto.getPopup = function() {
- return this._popup;
-}
-
-qx.Proto.getList = function() {
- return this._list;
-}
-
-qx.Proto.getField = function() {
- return this._field;
-}
-
-qx.Proto.getButton = function() {
- return this._button;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySelected = function(propValue, propOldValue, propData)
-{
- this._fromSelected = true;
-
- // only do this if we called setSelected seperatly
- // and not from the property "value".
- if (!this._fromValue) {
- this.setValue(propValue ? propValue.getLabel() : "");
- }
-
- // reset manager cache
- this._manager.setLeadItem(propValue);
- this._manager.setAnchorItem(propValue);
-
- // sync to manager
- if (propValue)
- {
- this._manager.setSelectedItem(propValue);
- }
- else
- {
- this._manager.deselectAll();
- }
-
- // reset hint
- delete this._fromSelected;
-
- return true;
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
- this._fromValue = true;
-
- // only do this if we called setValue seperatly
- // and not from the event "input".
- if (!this._fromInput)
- {
- if (this._field.getValue() == propValue) {
- this._field.forceValue(null);
- }
-
- this._field.setValue(propValue);
- }
-
- // only do this if we called setValue seperatly
- // and not from the property "selected".
- if (!this._fromSelected)
- {
- // inform selected property
- var vSelItem = this._list.findStringExact(propValue);
-
- // ignore disabled items
- if (vSelItem != null && !vSelItem.getEnabled()) {
- vSelItem = null;
- }
-
- this.setSelected(vSelItem);
- }
-
- // reset hint
- delete this._fromValue;
-
- return true;
-}
-
-qx.Proto._modifyEditable = function(propValue, propOldValue, propData)
-{
- var f = this._field;
-
- f.setReadOnly(!propValue);
- f.setCursor(propValue ? null : "default");
- f.setSelectable(propValue);
-
- return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
- if (this._button) {
- this._button.setEnabled(propValue);
- }
-
- if (this._field) {
- this._field.setEnabled(propValue);
- }
-
- return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- POPUP HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oldSelected = null;
-
-qx.Proto._openPopup = function()
-{
- var p = this._popup;
- var el = this.getElement();
-
- if (!p.isCreated()) {
- this.createDispatchEvent("beforeInitialOpen");
- }
-
- if (this._list.getChildrenLength() == 0) {
- return;
- }
-
- p.positionRelativeTo(el, 1, qx.html.Dimension.getBoxHeight(el));
- p.setWidth(this.getBoxWidth()-2);
-
- p.setParent(this.getTopLevelWidget());
- p.show();
-
- this._oldSelected = this.getSelected();
-
- this.setCapture(true);
-}
-
-qx.Proto._closePopup = function()
-{
- this._popup.hide();
- this.setCapture(false);
-}
-
-qx.Proto._testClosePopup = function()
-{
- if (this._popup.isSeeable()) {
- this._closePopup();
- }
-}
-
-qx.Proto._togglePopup = function() {
- this._popup.isSeeable() ? this._closePopup() : this._openPopup();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- OTHER EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onpopupappear = function(e)
-{
- var vSelItem = this.getSelected();
- if (vSelItem) {
- vSelItem.scrollIntoView();
- }
-}
-
-qx.Proto._oninput = function(e)
-{
- // Hint for modifier
- this._fromInput = true;
-
- this.setValue(this._field.getComputedValue());
-
- // be sure that the found item is in view
- if (this.getPopup().isSeeable() && this.getSelected()) {
- this.getSelected().scrollIntoView();
- }
-
- delete this._fromInput;
-}
-
-qx.Proto._onbeforedisappear = function(e)
-{
- this._testClosePopup();
-}
-
-
-
-/*
----------------------------------------------------------------------------
- MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
- var vTarget = e.getTarget();
-
- switch(vTarget)
- {
- case this._field:
- if (this.getEditable()) {
- break;
- }
-
- // no break here
-
- case this._button:
- this._button.addState("pressed");
- this._togglePopup();
- break;
-
- case this:
- case this._list:
- break;
-
- default:
- if (vTarget instanceof qx.ui.form.ListItem && vTarget.getParent() == this._list)
- {
- this._list._onmousedown(e);
- this.setSelected(this._list.getSelectedItem());
-
- this._closePopup();
- this.setFocused(true);
- }
- else if (this._popup.isSeeable())
- {
- this._popup.hide();
- this.setCapture(false);
- }
- }
-}
-
-qx.Proto._onmouseup = function(e)
-{
- switch(e.getTarget())
- {
- case this._field:
- if (this.getEditable()) {
- break;
- }
-
- // no break here
-
- default:
- this._button.removeState("pressed");
- break;
- }
-}
-
-qx.Proto._onmouseover = function(e)
-{
- var vTarget = e.getTarget();
-
- if (vTarget instanceof qx.ui.form.ListItem)
- {
- var vManager = this._manager;
-
- vManager.deselectAll();
-
- vManager.setLeadItem(vTarget);
- vManager.setAnchorItem(vTarget);
-
- vManager.setSelectedItem(vTarget);
- }
-}
-
-qx.Proto._onmousewheel = function(e)
-{
- if (!this._popup.isSeeable())
- {
- var toSelect;
-
- var isSelected = this.getSelected();
-
- if (e.getWheelDelta() < 0)
- {
- toSelect = isSelected ? this._manager.getNext(isSelected) : this._manager.getFirst();
- }
- else
- {
- toSelect = isSelected ? this._manager.getPrevious(isSelected) : this._manager.getLast();
- }
-
- if (toSelect)
- {
- this.setSelected(toSelect);
- }
- }
- /* close the popup if the event target is not the combobox or
- * not one of the list items of the popup list
- */
- else {
- var vTarget = e.getTarget();
-
- if (vTarget!=this && vTarget.getParent()!=this._list) {
- this._popup.hide();
- this.setCapture(false);
- }
- }
-}
-
-
-
-/*
----------------------------------------------------------------------------
- KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
- var vManager = this._manager;
- var vVisible = this._popup.isSeeable();
-
- switch(e.getKeyIdentifier())
- {
- // Handle <ENTER>
- case "Enter":
- if (vVisible)
- {
- this.setSelected(this._manager.getSelectedItem());
- this._closePopup();
- this.setFocused(true);
- }
- else
- {
- this._openPopup();
- }
-
- return;
-
- // Handle <ESC>
- case "Escape":
- if (vVisible)
- {
- vManager.setLeadItem(this._oldSelected);
- vManager.setAnchorItem(this._oldSelected);
-
- vManager.setSelectedItem(this._oldSelected);
-
- this._field.setValue(this._oldSelected ? this._oldSelected.getLabel() : "");
-
- this._closePopup();
- this.setFocused(true);
- }
-
- return;
-
- // Handle Alt+Down
- case "Down":
- if (e.isAltPressed())
- {
- this._togglePopup();
- return;
- }
-
- break;
- }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
- var vVisible = this._popup.isSeeable();
- var vManager = this._manager;
-
- switch(e.getKeyIdentifier())
- {
- // Handle <PAGEUP>
- case "PageUp":
- if (!vVisible)
- {
- var vPrevious;
- var vTemp = this.getSelected();
-
- if (vTemp)
- {
- var vInterval = this.getPagingInterval();
-
- do {
- vPrevious = vTemp;
- } while(--vInterval && (vTemp = vManager.getPrevious(vPrevious)));
- }
- else
- {
- vPrevious = vManager.getLast();
- }
-
- this.setSelected(vPrevious);
-
- return;
- }
-
- break;
-
- // Handle <PAGEDOWN>
- case "PageDown":
- if (!vVisible)
- {
- var vNext;
- var vTemp = this.getSelected();
-
- if (vTemp)
- {
- var vInterval = this.getPagingInterval();
-
- do {
- vNext = vTemp;
- } while(--vInterval && (vTemp = vManager.getNext(vNext)));
- }
- else
- {
- vNext = vManager.getFirst();
- }
-
- this.setSelected(vNext);
-
- return;
- }
-
- break;
- }
-
- // Default Handling
- if (!this.isEditable() || vVisible)
- {
- this._list._onkeypress(e);
-
- var vSelected = this._manager.getSelectedItem();
-
- if (!vVisible)
- {
- this.setSelected(vSelected);
- }
- else if (vSelected)
- {
- this._field.setValue(vSelected.getLabel());
- }
- }
-};
-
-
-qx.Proto._onkeyinput = function(e)
-{
- var vVisible = this._popup.isSeeable();
- if (!this.isEditable() || vVisible)
- {
- this._list._onkeyinput(e);
-
- var vSelected = this._manager.getSelectedItem();
-
- if (!vVisible)
- {
- this.setSelected(vSelected);
- }
- else if (vSelected)
- {
- this._field.setValue(vSelected.getLabel());
- }
- }
-};
-
-
-
-/*
----------------------------------------------------------------------------
- GLOBAL BLUR/FOCUS HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onwindowblur = qx.Proto._testClosePopup;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._visualizeBlur = function()
-{
- // Force blur, even if mouseFocus is not active because we
- // need to be sure that the previous focus rect gets removed.
- // But this only needs to be done, if there is no new focused element.
- if (qx.core.Client.getInstance().isMshtml())
- {
- if (this.getEnableElementFocus() && !this.getFocusRoot().getFocusedChild())
- {
- try
- {
- if (this.getEditable())
- {
- this.getField().getElement().blur();
- }
- else
- {
- this.getElement().blur();
- }
- }
- catch(ex) {};
- }
- }
- else
- {
- if (this.getEnableElementFocus())
- {
- try
- {
- if (this.getEditable())
- {
- this.getField().getElement().blur();
- }
- else if (!this.getFocusRoot().getFocusedChild())
- {
- this.getElement().blur();
- }
- }
- catch(ex) {};
- }
- }
-
- this.removeState("focused");
- return true;
-}
-
-qx.Proto._visualizeFocus = function()
-{
- if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus())
- {
- try
- {
- if (this.getEditable())
- {
- this.getField().getElement().focus();
- this.getField()._ontabfocus();
- }
- else
- {
- this.getElement().focus();
- }
- }
- catch(ex) {};
- }
-
- this.addState("focused");
- return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return;
- }
-
- // ************************************************************************
- // WIDGET MOUSE EVENTS
- // ************************************************************************
- this.removeEventListener("mousedown", this._onmousedown);
- this.removeEventListener("mouseup", this._onmouseup);
- this.removeEventListener("mouseover", this._onmouseover);
- this.removeEventListener("mousewheel", this._onmousewheel);
-
-
- // ************************************************************************
- // WIDGET KEY EVENTS
- // ************************************************************************
- this.removeEventListener("keydown", this._onkeydown);
- this.removeEventListener("keypress", this._onkeypress);
- this.removeEventListener("keyinput", this._onkeyinput);
-
- // ************************************************************************
- // DOCUMENT EVENTS
- // ************************************************************************
- var vDoc = qx.ui.core.ClientDocument.getInstance();
- vDoc.removeEventListener("windowblur", this._onwindowblur, this);
-
- if (this._popup)
- {
- this._popup.removeEventListener("appear", this._onpopupappear, this);
- if (!qx.core.Object._disposeAll) {
- this._popup.setParent(null);
- // If this is not a page unload, we have to reset the parent. Otherwise,
- // disposing a ComboBox that was clicked at least once would mean that
- // the popup is still referenced by the parent. When an application
- // repeatedly creates and disposes ComboBoxes, this would mean a memleak
- // (and it would also mess with other things like focus management).
- }
- this._popup.dispose();
- this._popup = null;
- }
-
- if (this._list)
- {
- this._list.dispose();
- this._list = null;
- }
-
- if (this._manager)
- {
- this._manager.dispose();
- this._manager = null;
- }
-
- if (this._field)
- {
- this._field.removeEventListener("input", this._oninput, this);
- this._field.dispose();
- this._field = null;
- }
-
- if (this._button)
- {
- this._button.dispose();
- this._button = null;
- }
-
- return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js
deleted file mode 100644
index 03004689af..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js
+++ /dev/null
@@ -1,1037 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * David Perez Carmona (david-perez), based on qx.ui.form.ComboBox
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_comboboxex)
-#require(qx.ui.table.Table)
-#embed(qx.widgettheme/arrows/down.gif)
-#embed(qx.icontheme/16/actions/edit-find.png)
-#embed(qx.icontheme/16/actions/dialog-ok.png)
-#embed(qx.icontheme/16/actions/dialog-cancel.png)
-
-************************************************************************ */
-
-/**
- * An enhanced combo-box for qooxdoo.
- *
- * <p>Features:</p>
- * <ul>
- * <li>Editable text field</li>
- * <li>Complete key-navigation</li>
- * <li>Mouse wheel navigation</li>
- * <li>Multicolumn display in list</li>
- * <li>If more than one column, headers are automatically shown</li>
- * <li>Can show the ID and/or description of each list item</li>
- * <li>Automatically calculating needed width</li>
- * <li>Popup list always shows full contents, and can be wider than text field</li>
- * <li>Search values through popup dialog</li>
- * <li>Internationalization support of messages</li>
- * </ul>
- * <p>Pending features:</p>
- * <ul>
- * <li>Images inside the list</li>
- * <li>Autocomplete on key input</li>
- * </ul>
- *
- * @event beforeInitialOpen {qx.event.type.Event}
- */
-qx.OO.defineClass('qx.ui.form.ComboBoxEx', qx.ui.layout.HorizontalBoxLayout, function() {
- qx.ui.layout.HorizontalBoxLayout.call(this);
-
- // ************************************************************************
- // POPUP
- // ************************************************************************
- var p = this._popup = new qx.ui.popup.Popup;
- p.setAppearance('combo-box-ex-popup');
-
- // ************************************************************************
- // LIST
- // ************************************************************************
- this._createList([ this.tr("ID"), this.tr("Description") ]);
-
- // ************************************************************************
- // FIELD
- // ************************************************************************
- var f = this._field = new qx.ui.form.TextField;
- f.setAppearance('combo-box-ex-text-field');
- f.addEventListener("input", this._oninput, this);
- this.add(f);
- this.setEditable(false);
-
- // ************************************************************************
- // BUTTON
- // ************************************************************************
-
- // Use qx.ui.basic.Atom instead of qx.ui.form.Button here to omit the registration
- // of the unneeded and complex button events.
- var b = this._button = new qx.ui.basic.Atom(null, "widget/arrows/down.gif");
- b.set({
- appearance: "combo-box-button",
- tabIndex: -1
- });
- this.add(b);
-
- // ************************************************************************
- // BEHAVIOR
- // ************************************************************************
- this.setTabIndex(1);
-
- // ************************************************************************
- // WIDGET MOUSE EVENTS
- // ************************************************************************
- this.addEventListener("mousedown", this._onmousedown);
- this.addEventListener("mouseup", this._onmouseup);
- this.addEventListener("mousewheel", this._onmousewheel);
- this.addEventListener("dblclick", function() {
- if (this.getAllowSearch()) {
- this.openSearchDialog();
- }
- });
-
- // ************************************************************************
- // WIDGET KEY EVENTS
- // ************************************************************************
- this.addEventListener("keydown", this._onkeydown);
- this.addEventListener("keypress", this._onkeypress);
-
- // ************************************************************************
- // WIDGET STATE EVENTS
- // ************************************************************************
- this.addEventListener("beforeDisappear", this._testClosePopup);
-
- // ************************************************************************
- // CHILDREN EVENTS
- // ************************************************************************
- this._popup.addEventListener("appear", this._onpopupappear, this);
-});
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "combo-box-ex" });
-
-/*!Is the text field component editable or the user can only select from the list?*/
-qx.OO.addProperty({ name: "editable", type: "boolean", getAlias: "isEditable" });
-
-/*!0 based. -1 means no selected index. It retrieves always the value column of the selection, not the description.*/
-qx.OO.addProperty({ name: "value", type : "string" });
-
-/*!How many items to transverse with PageUp and PageDn.*/
-qx.OO.addProperty({ name: "pagingInterval", type: "number", defaultValue: 10 });
-
-/*!Show the ID column (column 0) of the selection data?*/
-qx.OO.addProperty({ name: "idColumnVisible", type: "boolean", getAlias: "isIdColumnVisible", defaultValue: false });
-
-/*!Only used when editable is false. It determines what to show in the text field of the combo box.*/
-qx.OO.addProperty({ name: "showOnTextField", type: "string", defaultValue: 'description', possibleValues : [ 'description', 'idAndDescription' ] });
-
-/*!Only used when editable is false and showOnTextField=='idAndDescription'.*/
-qx.OO.addProperty({ name: "idDescriptionSeparator", type: "string", defaultValue: '- ' });
-
-/*!Ensures that always an item is selected (in case the selection isn't empty). Only used when editable is false.*/
-qx.OO.addProperty({ name: 'ensureSomethingSelected', type: "boolean", defaultValue: true });
-
-/*!Allow the search dialog when double clicking the combo, or pressing special keys?.*/
-qx.OO.addProperty({ name: 'allowSearch', type: "boolean", defaultValue: true });
-
-/*!Maximum number of visible rows in the popup list.*/
-qx.OO.addProperty({ name: 'maxVisibleRows', type: "number", defaultValue: 10 });
-
-
-/*
----------------------------------------------------------------------------
- UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getPopup = function() {
- return this._popup;
-}
-
-qx.Proto.getList = function() {
- return this._list;
-}
-
-qx.Proto.getField = function() {
- return this._field;
-}
-
-qx.Proto.getButton = function() {
- return this._button;
-}
-
-qx.Proto._getComboSetting = function(key) {
- return qx.Settings.getValueOfClass('qx.ui.form.ComboBoxEx', key);
-}
-
-/**Gets the current selected row of the selection.
- * @return null if nothing selected or an array*/
-qx.Proto.getSelectedRow = function() {
- var ind = this.getSelectedIndex();
- return ind < 0 ? null : this._model.getData()[ind];
-}
-
-/**Creates the list component.*/
-qx.Proto._createList = function(columns) {
- this._model = new qx.ui.table.SimpleTableModel;
- // Default column titles
- this._model.setColumns(columns);
- var l = this._list = new qx.ui.table.Table(this._model);
- l.setFocusedCell = function() {}
- l.setAppearance('combo-box-ex-list');
- // We receive this: Modification of property "keepFirstVisibleRowComplete" failed with exception: TypeError - vCurrentChild has no properties or
- // this: Modification of property "keepFirstVisibleRowComplete" failed with exception: TypeError - this.getParent() has no properties
- l.forceKeepFirstVisibleRowComplete(false);
- var selMan = l._getSelectionManager();
- var oldHandle = selMan.handleMouseUp, me = this;
- selMan.handleMouseUp = function(vItem, e) {
- oldHandle.apply(selMan, arguments);
- if (e.isLeftButtonPressed()) {
- me._testClosePopup();
- }
- }
- this._modifyIdColumnVisible(this.getIdColumnVisible());
- this._manager = l.getSelectionModel();
- this._manager.addEventListener('changeSelection', this._onChangeSelection, this);
- // Avoid deselection from user
- this._manager.removeSelectionInterval = function() {};
- this._manager.setSelectionMode(qx.ui.table.SelectionModel.SINGLE_SELECTION);
- this._popup.add(l);
- // Invalidate calculation of column widths
- delete this._calcDimensions;
-}
-
-
-/*
----------------------------------------------------------------------------
- PSEUDO-PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**Sets the header for each column.
- * @param columns {String[]}*/
-qx.Proto.setColumnHeaders = function(columns) {
- if (!this._list || columns.length != this._model.getColumnCount()) {
- if (this._list) {
- var data = this._model.getData();
- this._list.setParent(null);
- this._list.dispose();
- this._list = null;
- }
- this._createList(columns);
- if (data && data.length) {
- this._model.setData(data);
- }
- } else {
- this._model.setColumns(columns);
- this._list.getTableColumnModel().init(columns.length);
- delete this._calcDimensions;
- }
- this._modifyIdColumnVisible(this.getIdColumnVisible());
-}
-
-/**Getter for {@link #setColumnHeaders}.
- * @return {String[]}*/
-qx.Proto.getColumnHeaders = function(propVal) {
- var cols = [];
- cols.length = this._model.getColumnCount();
- for (var col = 0; col < cols.length; col++) {
- cols[col] = this._model.getColumnName(col);
- }
- return cols;
-}
-
-/**Sets the list of selectable items.
- * @param data {var[][]} Array of values. Its value is an array, with the following info:<ul>.
- * <li>Column 0 represents the ID, i.e. the value that is stored internally and used by the app.</li>
- * <li>Column 1 represents the description, the text that the end user normally sees.</li>
- * <li>Columns > 1 will also be shown in the popup list, it you have set the appropiate column headers with {@link #setColumnHeaders}.</li>
- * </ul>*/
-qx.Proto.setSelection = function(data) {
- // Invalidate calculation of column widths
- delete this._calcDimensions;
- this._model.setData(data);
- // Try to preserve currently selected value
- if (!this.getEditable()) {
- this._modifyValue(this.getValue());
- }
-}
-
-/**Getter for {@link #setSelection}.
- * @return {Array}*/
-qx.Proto.getSelection = function() {
- return this._model.getData();
-}
-
-/**Sets the index of the currently selected item in the list.
- * @param index {number} -1 means no selected index*/
-qx.Proto.setSelectedIndex = function(index) {
- var items = this.getSelection().length;
- if (items >= 0) {
- if (index < 0 && !this.getEditable() && this.getEnsureSomethingSelected()) {
- index = 0;
- }
- if (index >= 0) {
- index = qx.lang.Number.limit(index, 0, items-1);
- this._manager.setSelectionInterval(index, index);
- if (this._popup.isSeeable()) {
- this._list.scrollCellVisible(0, index);
- }
- } else {
- this._manager.clearSelection();
- }
- }
- return true;
-}
-
-/**Getter for {@link #setSelectedIndex}.*/
-qx.Proto.getSelectedIndex = function() {
- var index = this._manager.getAnchorSelectionIndex();
- return this._manager.isSelectedIndex(index) ? index:-1;
-}
-
-
-/*
----------------------------------------------------------------------------
- MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyShowOnTextField = function(propVal) {
- if (!this.getEditable()) {
- this.setSelectedIndex(this.getSelectedIndex());
- delete this._calcDimensions; // Invalidate this._neededTextFieldWidth
- }
- return true;
-}
-
-qx.Proto._modifyMaxVisibleRows = function() {
- delete this._calcDimensions; // Invalidate this._list.height
- return true;
-}
-
-qx.Proto._checkIdDescriptionSeparator = function(propVal) {
- // For measuring widths, it is better to replace spaces with non-breakable spaces
- return String(propVal).replace(/ /g, '\u00A0')
-}
-
-qx.Proto._modifyIdDescriptionSeparator = function(propVal) {
- if (!this.getEditable() && this.getShowOnTextField() == 'idAndDescription') {
- this.setSelectedIndex(this.getSelectedIndex());
- delete this._calcDimensions; // Invalidate this._neededTextFieldWidth
- }
- return true;
-}
-
-qx.Proto._modifyIdColumnVisible = function(propVal) {
- this._list.getTableColumnModel().setColumnVisible(0, propVal);
- delete this._calcDimensions;
- return true;
-}
-
-qx.Proto._modifyEditable = function(propValue/*, propOldValue, propData*/) {
- var f = this._field;
- f.setReadOnly(!propValue);
- f.setCursor(propValue ? null : "default");
- f.setSelectable(propValue);
- return true;
-}
-
-qx.Proto._modifyValue = function(propValue/*, propOldValue, propData*/) {
- this._fromValue = true;
-
- var values = this._model.getData();
- var i = -1;
- if (propValue != null) {
- for (var i = 0; i < values.length; i++) {
- if (propValue == values[i][0]) {
- break;
- }
- }
- if (i == values.length) {
- i = -1;
- }
- }
- if (this.getEditable()) {
- this._field.setValue(propValue);
- }
- // only do this if we called setValue separately
- // and not from the property "selected".
- if (!this._fromSelected) {
- this.setSelectedIndex(i);
- }
- // reset hint
- delete this._fromValue;
- return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue/*, propOldValue, propData*/) {
- if (this._button) {
- this._button.setEnabled(propValue);
- }
- if (this._field) {
- this._field.setEnabled(propValue);
- }
- return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.apply(this, arguments);
-}
-
-
-/*
----------------------------------------------------------------------------
- POPUP HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oldSelected = null;
-
-qx.Proto._openPopup = function() {
- if (this.isSearchInProgress()) {
- return;
- }
- var p = this._popup;
- p.setAutoHide(false);
- var el = this.getElement();
- if (!p.isCreated()) {
- this.createDispatchEvent("beforeInitialOpen");
- }
- if (!this.getSelection().length) {
- return;
- }
- p.positionRelativeTo(el, 1, qx.html.Dimension.getBoxHeight(el));
- this._calculateDimensions();
- p.setParent(this.getTopLevelWidget());
- p.auto();
- p.show();
- this._oldSelected = this.getSelectedIndex();
- window.setInterval(function() {
- p.setAutoHide(true);
- }, 0);
-}
-
-/**Hide the popup list.*/
-qx.Proto._closePopup = function() {
- this._popup.hide();
-}
-
-/**Hide the popup list only when needed.*/
-qx.Proto._testClosePopup = function() {
- if (this._popup.isSeeable()) {
- this._closePopup();
- }
-}
-
-/**Toggle the visibility of the popup list.*/
-qx.Proto._togglePopup = function() {
- this._popup.isSeeable() ? this._closePopup() : this._openPopup();
-}
-
-/*
----------------------------------------------------------------------------
- DIMENSIONING
----------------------------------------------------------------------------
-*/
-
-/**Sizes the width of the text field component to the needed value to show any selection item.*/
-qx.Proto.sizeTextFieldToContent = function() {
- this._calculateDimensions();
- this._field.setWidth(this._neededTextFieldWidth);
-}
-
-/**Calculates the needed dimensions for the text field and list components*/
-qx.Proto._calculateDimensions = function() {
- if (this._calcDimensions) {
- // Already calculated
- return;
- }
- var data = this.getSelection();
- var cols = this.getColumnHeaders(), nCols = cols.length;
- var columnWidths = [];
- this._neededTextFieldWidth = 0;
- columnWidths.length = cols.length;
- for (var col = 0; col < cols.length; col++) {
- columnWidths[col] = 0;
- }
- var withDescript = this.getShowOnTextField() == 'idAndDescription';
- for (var row = 0, rows = Math.min(data.length, 50); row < rows; row++) {
- var r = data[row], wi0, wi1;
- for (col = 0; col < nCols; col++) {
- var wi = this._getTextWidth(r[col]);
- if (col == 0) {
- wi0 = wi;
- } else if (col == 1) {
- wi1 = wi;
- }
- columnWidths[col] = Math.max(wi, columnWidths[col]);
- }
- this._neededTextFieldWidth = Math.max(this._neededTextFieldWidth,
- wi1+(withDescript ? wi0:0));
- }
- if (this.getShowOnTextField() == 'idAndDescription') {
- this._neededTextFieldWidth += this._getTextWidth(this.getIdDescriptionSeparator());
- }
- this._neededTextFieldWidth += 8; /*Extra margins*/
- var maxRows = this.getMaxVisibleRows(),
- // Only assign room for the vertical scrollbar when needed
- width = data.length > maxRows ? (new qx.ui.core.ScrollBar)._getScrollBarWidth():0,
- colModel = this._list.getTableColumnModel(),
- countVisible = 0;
-
- // ##Only show headers if we have more than 1 column visible
- for (col = 0; col < nCols; col++) {
- if (colModel.isColumnVisible(col)) {
- countVisible++;
- }
- }
- var hasHeaders = countVisible > 1;
- this._list.getPaneScroller(0).getHeader().setHeight(hasHeaders ? 'auto' : 1);
-
- // ##Size each column
- for (col = 0; col < nCols; col++) {
- if (colModel.isColumnVisible(col)) {
- var w = columnWidths[col];
- if (hasHeaders) {
- w = Math.max(w, this._getTextWidth(cols[col]));
- }
- w += 8;
- this._list.setColumnWidth(col, w);
- width += w;
- }
- }
-
- // ##Final width and height
- this._list.set({
- width: width,
- height: this._list.getRowHeight()*
- Math.min(maxRows, (hasHeaders ? 1:0)+data.length)+2+(hasHeaders ? 2:0)
- });
- // This denotes dimensions are already calculated
- this._calcDimensions = true;
-}
-
-/**Calculates the width of the given text.
- * The default font is used.
- * @return {Integer}*/
-qx.Proto._getTextWidth = function(text) {
- var lab = new qx.ui.basic.Label(text);
- var res = lab.getPreferredBoxWidth();
- lab.dispose();
- return res;
-}
-
-
-/*
----------------------------------------------------------------------------
- SEARCHING
----------------------------------------------------------------------------
-*/
-
-/**Does this combo have the searched dialog open?*/
-qx.Proto.isSearchInProgress = function() {
- return !this._popup.contains(this._list);
-}
-
-/**Searches the given text. Called from the search dialog.
- * @param startIndex {number} Start index, 0 based
- * @param txt {String} Text to find
- * @param caseSens {Boolean} Case sensivity flag.*/
-qx.Proto._search = function(startIndex, txt, caseSens) {
- if (txt == null || !txt.length) {
- return;
- }
- var row = startIndex,
- nCols = this._model.getColumnCount(),
- nRows = this.getSelection().length,
- data = this._model.getData();
- if (!caseSens) {
- txt = txt.toLowerCase();
- }
- var colModel = this._list.getTableColumnModel();
- while (true) {
- var dataRow = data[row];
- if (dataRow) {
- for (var col = 0; col < nCols; col++) {
- if (colModel.isColumnVisible(col)) {
- var txtCol = dataRow[col];
- if (!caseSens) {
- txtCol = txtCol.toLowerCase();
- }
- if (txtCol.indexOf(txt) >= 0) {
- this._manager.setSelectionInterval(row, row);
- this._list.scrollCellVisible(1, row);
- return;
- }
- }
- }
- }
- row = (row+1)% nRows;
- if (row == startIndex) {
- break;
- }
- }
-}
-
-/**Opens a popup search dialog, useful when the combo has a lot of items.
- * This dialog is triggered by double clicking the combo, pressing F3 or Ctrl+F.*/
-qx.Proto.openSearchDialog = function() {
- var sel = this.getSelection();
- if (!sel || !sel.length || this.isSearchInProgress()) {
- return;
- }
- this._testClosePopup();
-
- var me = this,
- oldSelectedIndex = this.getSelectedIndex(),
- startIndex = oldSelectedIndex;
-
- //###searchField
- function search() {
- me._search(startIndex, searchField.getComputedValue(), checkCase.isChecked());
- }
- var searchField = new qx.ui.form.TextField;
- searchField.set({
- minWidth: this._field.getWidth(),
- width: '100%'
- });
- searchField.addEventListener("input", function() {
- search();
- });
-
- //###checkCase
- var checkCase = new qx.ui.form.CheckBox(this.tr("Case sensitive"));
- checkCase.set({
- horizontalAlign: 'center',
- marginBottom: 4
- });
-
- //###vbox
- var vbox = new qx.ui.layout.VerticalBoxLayout;
- vbox.set({
- spacing: 6,
- horizontalChildrenAlign: 'center',
- height: '100%'
- });
- vbox.auto();
- vbox.add(searchField, checkCase);
-
- //###list, we reuse the same list in the popup
- this._calculateDimensions();
- var border = qx.renderer.border.BorderPresets.getInstance().inset;
- var newListSettings = {
- /*minHeight: border.getTopWidth()+this._list.getHeight()+border.getBottomWidth(),
- height: '1*',*/
- height: border.getTopWidth()+this._list.getHeight()+border.getBottomWidth(),
- width: border.getLeftWidth()+this._list.getWidth()+border.getRightWidth(),
- border: border,
- parent: vbox
- };
- // Save old list settings
- var oldListSettings = {};
- for (var prop in newListSettings) {
- oldListSettings[prop] = this._list[qx.OO.getter[prop]]();
- }
- this._list.set(newListSettings);
-
- //###buttons
- var butNext = new qx.ui.form.Button('', 'icon/16/actions/edit-find.png');
- butNext.set({
- toolTip: new qx.ui.popup.ToolTip(this.tr("Search next occurrence"))
- });
- butNext.addEventListener("execute", function() {
- startIndex = (this.getSelectedIndex()+1) % sel.length;
- search();
- }, this);
-
- var butOk = new qx.ui.form.Button('', 'icon/16/actions/dialog-ok.png');
- butOk.addEventListener('execute', function() {
- oldSelectedIndex = null;
- win.close();
- }, this);
-
- var butCancel = new qx.ui.form.Button('', 'icon/16/actions/dialog-cancel.png');
- butCancel.addEventListener('execute', function() {
- win.close();
- }, this);
-
- var butBox = new qx.ui.layout.VerticalBoxLayout;
- butBox.auto();
- butBox.set({
- spacing: 10
- });
- butBox.add(butNext, butOk, butCancel);
-
- //###hbox
- var hbox = new qx.ui.layout.BoxLayout;
- hbox.auto();
- hbox.setPadding(10);
- hbox.set({
- spacing: 8,
- minHeight: 'auto',
- height: '100%'
- });
- hbox.add(vbox, butBox);
-
- //###Window
- var win = new qx.ui.window.Window(this.tr("Search items in list"), 'icon/16/actions/edit-find.png');
- win.add(hbox);
- win.positionRelativeTo(this);
- win.set({
- autoHide: true,
- allowMaximize: false,
- showMaximize: false,
- allowMinimize: false,
- showMinimize: false
- });
- win.addEventListener("appear", function() {
- searchField.focus();
- });
- win.addEventListener("disappear", function() {
- if (oldSelectedIndex != null) {
- // Hit Cancel button
- this.setSelectedIndex(oldSelectedIndex);
- }
- this._list.set(oldListSettings);
- this.focus();
- }, this);
- win.addEventListener("keydown", function(e) {
- switch (e.getKeyIdentifier()) {
- case "Enter":
- butOk.createDispatchEvent('execute');
- break;
- case "Escape":
- butCancel.createDispatchEvent('execute');
- break;
- case "F3":
- butNext.createDispatchEvent('execute');
- break;
- default:
- return;
- }
- e.preventDefault();
- }, this);
- win.auto();
- win.addToDocument();
- win.open();
-}
-
-/*
----------------------------------------------------------------------------
- OTHER EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onChangeSelection = function(e) {
- this._fromSelected = true;
-
- // only do this if we called setValue separately
- // and not from the event "input".
- if (!this._fromInput) {
- var index = this.getSelectedIndex();
- if (index >= 0) {
- var row = this._model.getData()[index];
- }
- if (row || !this.getEditable()) {
- this.setValue(row && row[0]);
- }
- // In case of editable, this.setValue() already calls this._field.setValue()
- if (!this.getEditable()) {
- var val = "";
- if (row) {
- val = this.getShowOnTextField() == 'description' ?
- row[1] :
- (row[0] != null && row[0] != '' ? row[0] + this.getIdDescriptionSeparator() + row[1]:row[1]);
- }
- this._field.setValue(val);
- }
- }
- // reset hint
- delete this._fromSelected;
-}
-
-qx.Proto._onpopupappear = function(e) {
- var index = this.getSelectedIndex();
- if (index >= 0) {
- this._list.scrollCellVisible(0, index);
- }
-}
-
-qx.Proto._oninput = function(e) {
- // Hint for modifier
- this._fromInput = true;
- this.setValue(this._field.getComputedValue());
- delete this._fromInput;
-}
-
-
-/*
----------------------------------------------------------------------------
- MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e) {
- switch(e.getTarget()) {
- case this._field:
- if (this.getEditable()) {
- break;
- }
- // no break here
- case this._button:
- this._button.addState("pressed");
- this._togglePopup();
- // Assure we receive the mouse up event
- this.setCapture(true);
- break;
- }
-}
-
-qx.Proto._onmouseup = function(e) {
- switch(e.getTarget()) {
- case this._field:
- if (this.getEditable()) {
- break;
- }
- // no break here
- default:
- this._button.removeState("pressed");
- break;
- }
- this.setCapture(false);
-}
-
-qx.Proto._onmousewheel = function(e) {
- if (!this._popup.isSeeable()) {
- this.setSelectedIndex(Math.max(0, this.getSelectedIndex()+(e.getWheelDelta() < 0 ? -1:1)));
- }
-}
-
-
-/*
----------------------------------------------------------------------------
- KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e) {
- var vVisible = this._popup.isSeeable();
-
- switch (e.getKeyIdentifier()) {
- case "Enter":
- if (vVisible) {
- this._closePopup();
- this.setFocused(true);
- } else {
- this._openPopup();
- }
- break;
-
- case "Escape":
- if (vVisible) {
- this.setSelectedIndex(this._oldSelected);
- this._closePopup();
- this.setFocused(true);
- }
- break;
-
- case "Home":
- this.setSelectedIndex(0);
- break;
-
- case "End":
- var items = this.getSelection().length;
- if (items) {
- this.setSelectedIndex(items-1);
- }
- break;
-
- case "Down":
- if (e.isAltPressed()) {
- this._togglePopup();
- }
- break;
-
- case "F3":
- if (this.getAllowSearch()) {
- this.openSearchDialog();
- }
- break;
-
- case "F":
- if (e.isCtrlPressed()) {
- if (this.getAllowSearch()) {
- this.openSearchDialog();
- }
- break;
- }
- return;
-
- default:
- if (vVisible) {
- this._list.dispatchEvent(e);
- }
- return;
- }
- e.preventDefault();
-}
-
-
-qx.Proto._onkeypress = function(e) {
- var vVisible = this._popup.isSeeable();
-
- switch (e.getKeyIdentifier()) {
- case "Up":
- this.setSelectedIndex(Math.max(0, this.getSelectedIndex()-1));
- break;
-
- case "Down":
- this.setSelectedIndex(Math.max(0, this.getSelectedIndex()+1));
- break;
-
- case "PageUp":
- this.setSelectedIndex(Math.max(0, this.getSelectedIndex()-this.getPagingInterval()));
- break;
-
- case "PageDown":
- this.setSelectedIndex(this.getSelectedIndex()+this.getPagingInterval());
- break;
-
- default:
- if (vVisible) {
- this._list.dispatchEvent(e);
- }
- return;
- }
- e.preventDefault();
-
- if (!this.isEditable() && this._list.isSeeable()) {
- this._list.dispatchEvent(e);
- }
-
-}
-
-
-/*
----------------------------------------------------------------------------
- FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._visualizeBlur = function() {
- // Force blur, even if mouseFocus is not active because we
- // need to be sure that the previous focus rect gets removed.
- // But this only needs to be done, if there is no new focused element.
- if (qx.core.Client.getInstance().isMshtml()) {
- if (this.getEnableElementFocus() && !this.getFocusRoot().getFocusedChild()) {
- try {
- if (this.getEditable()) {
- this.getField().getElement().blur();
- } else {
- this.getElement().blur();
- }
- }
- catch(ex) {};
- }
- } else {
- if (this.getEnableElementFocus()) {
- try {
- if (this.getEditable()) {
- this.getField().getElement().blur();
- } else if (!this.getFocusRoot().getFocusedChild()) {
- this.getElement().blur();
- }
- }
- catch(ex) {};
- }
- }
- this.removeState("focused");
- return true;
-}
-
-qx.Proto._visualizeFocus = function() {
- if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus()) {
- try {
- if (this.getEditable()) {
- this.getField().getElement().focus();
- this.getField()._ontabfocus();
- } else {
- this.getElement().focus();
- }
- } catch(ex) {
- }
- }
- this.addState("focused");
- return true;
-}
-
-/*
----------------------------------------------------------------------------
- DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function() {
- if (this.getDisposed()) {
- return;
- }
-
- // ************************************************************************
- // WIDGET MOUSE EVENTS
- // ************************************************************************
- this.removeEventListener("mousedown", this._onmousedown);
- this.removeEventListener("mouseup", this._onmouseup);
- this.removeEventListener("mousewheel", this._onmousewheel);
-
-
- // ************************************************************************
- // WIDGET KEY EVENTS
- // ************************************************************************
- this.removeEventListener("keydown", this._onkeydown);
- this.removeEventListener("keypress", this._onkeypress);
-
-
- this._model = null;
- if (this._manager) {
- this._manager.removeEventListener('changeSelection', this._onChangeSelection);
- this._manager = null;
- }
- if (this._list) {
- this._list.dispose();
- this._list = null;
- }
- if (this._popup) {
- this._popup.removeEventListener("appear", this._onpopupappear, this);
- this._popup.dispose();
- this._popup = null;
- }
- if (this._field) {
- if (this.getEditable()) {
- this._field.removeEventListener("input", this._oninput, this);
- }
- this._field.dispose();
- this._field = null;
- }
- if (this._button) {
- this._button.dispose();
- this._button = null;
- }
- return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js
deleted file mode 100644
index 32e269e55a..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.InputCheckSymbol", qx.ui.basic.Terminator,
-function()
-{
- qx.ui.basic.Terminator.call(this);
-
- this.setTagName("input");
- this.setSelectable(false);
-
- if (qx.core.Client.getInstance().isMshtml())
- {
- // Take control over size of element (mshtml)
- this.setWidth(13);
- this.setHeight(13);
- }
- else if (qx.core.Client.getInstance().isGecko())
- {
- // Remove gecko default margin
- this.setMargin(0);
- }
-
- // we need to be sure that the dom protection of this is added
- this.forceTabIndex(1);
- this.setTabIndex(-1);
- this.setChecked(false);
-});
-
-qx.OO.addProperty({ name : "name", type : "string", impl : "apply" });
-qx.OO.addProperty({ name : "value", impl : "apply" });
-qx.OO.addProperty({ name : "type", impl : "apply" });
-qx.OO.addProperty({ name : "checked", type : "boolean", impl : "apply", getAlias : "isChecked" });
-
-qx.Proto._modifyApply = function(propValue, propOldValue, propData) {
- return this.setHtmlProperty(propData.name, propValue);
-}
-
-qx.Proto.getPreferredBoxWidth = function() {
- return 13;
-}
-
-qx.Proto.getPreferredBoxHeight = function() {
- return 13;
-}
-
-qx.Proto.getBoxWidth = qx.Proto.getPreferredBoxWidth;
-qx.Proto.getBoxHeight = qx.Proto.getPreferredBoxHeight;
-
-qx.Proto.getInnerWidth = qx.Proto.getPreferredBoxWidth;
-qx.Proto.getInnerHeight = qx.Proto.getPreferredBoxHeight;
-
-if (qx.core.Client.getInstance().isMshtml())
-{
- qx.Proto._afterAppear = function()
- {
- qx.ui.basic.Terminator.prototype._afterAppear.call(this);
-
- var vElement = this.getElement();
- vElement.checked = this.getChecked();
-
- if (!this.getEnabled()) {
- vElement.disabled = true;
- }
- }
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
- propValue ? this.removeHtmlAttribute("disabled") : this.setHtmlAttribute("disabled", "disabled");
- return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js
deleted file mode 100644
index 23f4051023..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js
+++ /dev/null
@@ -1,385 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.List", qx.ui.layout.VerticalBoxLayout,
-function()
-{
- qx.ui.layout.VerticalBoxLayout.call(this);
-
-
- // ************************************************************************
- // INITILISIZE MANAGER
- // ************************************************************************
- this._manager = new qx.manager.selection.SelectionManager(this);
-
-
- // ************************************************************************
- // BEHAVIOR
- // ************************************************************************
- this.setSelectable(false);
- this.setTabIndex(1);
-
-
- // ************************************************************************
- // MOUSE EVENT LISTENER
- // ************************************************************************
- this.addEventListener("mouseover", this._onmouseover);
- this.addEventListener("mousedown", this._onmousedown);
- this.addEventListener("mouseup", this._onmouseup);
- this.addEventListener("click", this._onclick);
- this.addEventListener("dblclick", this._ondblclick);
-
-
- // ************************************************************************
- // KEY EVENT LISTENER
- // ************************************************************************
- this.addEventListener("keydown", this._onkeydown);
- this.addEventListener("keypress", this._onkeypress);
- this.addEventListener("keyinput", this._onkeyinput);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list" });
-
-qx.OO.addProperty({ name : "enableInlineFind", type : "boolean", defaultValue : true });
-qx.OO.addProperty({ name : "markLeadingItem", type : "boolean", defaultValue : false });
-
-qx.Proto._pressedString = "";
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- MANAGER BINDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
- return this._manager;
-}
-
-qx.Proto.getListItemTarget = function(vItem)
-{
- while (vItem != null && vItem.getParent() != this) {
- vItem = vItem.getParent();
- }
-
- return vItem;
-}
-
-qx.Proto.getSelectedItem = function() {
- return this.getSelectedItems()[0];
-}
-
-qx.Proto.getSelectedItems = function() {
- return this._manager.getSelectedItems();
-}
-
-
-
-/*
----------------------------------------------------------------------------
- MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e)
-{
- var vItem = this.getListItemTarget(e.getTarget());
-
- if (vItem) {
- this._manager.handleMouseOver(vItem, e);
- }
-}
-
-qx.Proto._onmousedown = function(e)
-{
- var vItem = this.getListItemTarget(e.getTarget());
-
- if (vItem) {
- this._manager.handleMouseDown(vItem, e);
- }
-}
-
-qx.Proto._onmouseup = function(e)
-{
- var vItem = this.getListItemTarget(e.getTarget());
-
- if (vItem) {
- this._manager.handleMouseUp(vItem, e);
- }
-}
-
-qx.Proto._onclick = function(e)
-{
- var vItem = this.getListItemTarget(e.getTarget());
-
- if (vItem) {
- this._manager.handleClick(vItem, e);
- }
-}
-
-qx.Proto._ondblclick = function(e)
-{
- var vItem = this.getListItemTarget(e.getTarget());
-
- if (vItem) {
- this._manager.handleDblClick(vItem, e);
- }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
- // Execute action on press <ENTER>
- if (e.getKeyIdentifier() == "Enter" && !e.isAltPressed())
- {
- var items = this.getSelectedItems();
- var currentItem;
-
- for (var i=0; i<items.length; i++) {
- items[i].createDispatchEvent("action");
- }
- }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
- // Give control to selectionManager
- this._manager.handleKeyPress(e);
-};
-
-
-qx.Proto._lastKeyPress = 0;
-
-qx.Proto._onkeyinput = function(e)
-{
- if (!this.getEnableInlineFind()) {
- return;
- }
-
- // Reset string after a second of non pressed key
- if (((new Date).valueOf() - this._lastKeyPress) > 1000) {
- this._pressedString = "";
- }
-
- // Combine keys the user pressed to a string
- this._pressedString += String.fromCharCode(e.getCharCode());
-
- // Find matching item
- var matchedItem = this.findString(this._pressedString, null);
-
- if (matchedItem)
- {
- var oldVal = this._manager._getChangeValue();
-
- // Temporary disable change event
- var oldFireChange = this._manager.getFireChange();
- this._manager.setFireChange(false);
-
- // Reset current selection
- this._manager._deselectAll();
-
- // Update manager
- this._manager.setItemSelected(matchedItem, true);
- this._manager.setAnchorItem(matchedItem);
- this._manager.setLeadItem(matchedItem);
-
- // Scroll to matched item
- matchedItem.scrollIntoView();
-
- // Recover event status
- this._manager.setFireChange(oldFireChange);
-
- // Dispatch event if there were any changes
- if (oldFireChange && this._manager._hasChanged(oldVal)) {
- this._manager._dispatchChange();
- }
- }
-
- // Store timestamp
- this._lastKeyPress = (new Date).valueOf();
- e.preventDefault();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- FIND SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._findItem = function(vUserValue, vStartIndex, vType)
-{
- var vAllItems = this.getChildren();
-
- // If no startIndex given try to get it by current selection
- if (vStartIndex == null)
- {
- vStartIndex = vAllItems.indexOf(this.getSelectedItem());
-
- if (vStartIndex == -1) {
- vStartIndex = 0;
- }
- }
-
- var methodName = "matches" + vType;
-
- // Mode #1: Find all items after the startIndex
- for (var i=vStartIndex; i<vAllItems.length; i++) {
- if (vAllItems[i][methodName](vUserValue)) {
- return vAllItems[i];
- }
- }
-
- // Mode #2: Find all items before the startIndex
- for (var i=0; i<vStartIndex; i++) {
- if (vAllItems[i][methodName](vUserValue)) {
- return vAllItems[i];
- }
- }
-
- return null;
-}
-
-qx.Proto.findString = function(vText, vStartIndex) {
- return this._findItem(vText, vStartIndex || 0, "String");
-}
-
-qx.Proto.findStringExact = function(vText, vStartIndex) {
- return this._findItem(vText, vStartIndex || 0, "StringExact");
-}
-
-qx.Proto.findValue = function(vText, vStartIndex) {
- return this._findItem(vText, vStartIndex || 0, "Value");
-}
-
-qx.Proto.findValueExact = function(vText, vStartIndex) {
- return this._findItem(vText, vStartIndex || 0, "ValueExact");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- SORT SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._sortItemsCompare = function(a, b) {
- return a.key < b.key ? -1 : a.key == b.key ? 0 : 1;
-}
-
-qx.Proto.sortItemsByString = function(vReverse)
-{
- var sortitems = [];
- var items = this.getChildren();
-
- for(var i=0, l=items.length; i<l; i++) {
- sortitems[i] = { key : items[i].getLabel(), item : items[i] }
- }
-
- sortitems.sort(this._sortItemsCompare);
- if (vReverse) {
- sortitems.reverse();
- }
-
- for(var i=0; i<l; i++) {
- this.addAt(sortitems[i].item, i);
- }
-}
-
-qx.Proto.sortItemsByValue = function(vReverse)
-{
- var sortitems = [];
- var items = this.getChildren();
-
- for(var i=0, l=items.length; i<l; i++) {
- sortitems[i] = { key : items[i].getValue(), item : items[i] }
- }
-
- sortitems.sort(this._sortItemsCompare);
- if (vReverse) {
- sortitems.reverse();
- }
-
- for(var i=0; i<l; i++) {
- this.addAt(sortitems[i].item, i);
- }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return;
- }
-
- if (this._manager)
- {
- this._manager.dispose();
- this._manager = null;
- }
-
- this.removeEventListener("mouseover", this._onmouseover);
- this.removeEventListener("mousedown", this._onmousedown);
- this.removeEventListener("mouseup", this._onmouseup);
- this.removeEventListener("click", this._onclick);
- this.removeEventListener("dblclick", this._ondblclick);
- this.removeEventListener("keydown", this._onkeydown);
- this.removeEventListener("keypress", this._onkeypress);
- this.removeEventListener("keyinput", this._onkeyinput);
-
- return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js
deleted file mode 100644
index 4d8bc34977..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * @event action {qx.event.type.Event} (Fired by {@link qx.ui.form.List})
- */
-qx.OO.defineClass("qx.ui.form.ListItem", qx.ui.basic.Atom,
-function(vText, vIcon, vValue)
-{
- qx.ui.basic.Atom.call(this, vText, vIcon);
-
- if (vValue != null) {
- this.setValue(vValue);
- }
-
-
- // ************************************************************************
- // EVENT LISTENER
- // ************************************************************************
- this.addEventListener("dblclick", this._ondblclick);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-item" });
-qx.OO.addProperty({ name : "value" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- STATE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.handleStateChange = function()
-{
- if (this.hasState("lead"))
- {
- this.setStyleProperty("MozOutline", "1px dotted invert");
- this.setStyleProperty("outline", "1px dotted invert");
- }
- else
- {
- this.removeStyleProperty("MozOutline");
- this.setStyleProperty("outline", "0px none");
- }
-}
-
-// Remove default outline focus border
-qx.Proto._applyStateStyleFocus = function(vStates) {};
-
-
-
-
-/*
----------------------------------------------------------------------------
- UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.matchesString = function(vText) {
- return vText != "" && this.getLabel().toLowerCase().indexOf(vText.toLowerCase()) == 0;
-}
-
-qx.Proto.matchesStringExact = function(vText) {
- return vText != "" && this.getLabel().toLowerCase() == String(vText).toLowerCase();
-}
-
-qx.Proto.matchesValue = function(vText) {
- return vText != "" && this.getValue().toLowerCase().indexOf(vText.toLowerCase()) == 0;
-}
-
-qx.Proto.matchesValueExact = function(vText) {
- return vText != "" && this.getValue().toLowerCase() == String(vText).toLowerCase();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._ondblclick = function(e)
-{
- var vCommand = this.getCommand();
- if (vCommand) {
- vCommand.execute();
- }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js
deleted file mode 100644
index 9c0bc3b006..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.PasswordField", qx.ui.form.TextField,
-function(vText)
-{
- qx.ui.form.TextField.call(this, vText);
-
- this.setHtmlProperty("type", "password");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js
deleted file mode 100644
index d17bd7046b..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js
+++ /dev/null
@@ -1,187 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.RadioButton", qx.ui.form.CheckBox,
-function(vText, vValue, vName, vChecked) {
- qx.ui.form.CheckBox.call(this, vText, vValue, vName, vChecked);
-
- this.addEventListener("keypress", this._onkeypress);
-});
-
-
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
- The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
-*/
-qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- ICON HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.INPUT_TYPE = "radio";
-
-
-
-
-/*
----------------------------------------------------------------------------
- MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
- if (this._iconObject) {
- this._iconObject.setChecked(propValue);
- }
-
- var vManager = this.getManager();
- if (vManager) {
- vManager.handleItemChecked(this, propValue);
- }
-
- return true;
-}
-
-qx.Proto._modifyManager = function(propValue, propOldValue, propData)
-{
- if (propOldValue) {
- propOldValue.remove(this);
- }
-
- if (propValue) {
- propValue.add(this);
- }
-
- return true;
-}
-
-qx.Proto._modifyName = function(propValue, propOldValue, propData)
-{
- if (this._iconObject) {
- this._iconObject.setName(propValue);
- }
-
- if (this.getManager()) {
- this.getManager().setName(propValue);
- }
-
- return true;
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
- if (this.isCreated() && this._iconObject) {
- this._iconObject.setValue(propValue);
- }
-
- return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT-HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
- if (e.getKeyIdentifier() == "Enter" && !e.isAltPressed()) {
- this.setChecked(true);
- }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
- switch(e.getKeyIdentifier())
- {
- case "Left":
- case "Up":
- qx.event.handler.FocusHandler.mouseFocus = false;
- // we want to have a focus border when using arrows to select
- qx.event.handler.FocusHandler.mouseFocus = false;
-
- return this.getManager() ? this.getManager().selectPrevious(this) : true;
-
- case "Right":
- case "Down":
- // we want to have a focus border when using arrows to select
- qx.event.handler.FocusHandler.mouseFocus = false;
-
- return this.getManager() ? this.getManager().selectNext(this) : true;
- }
-};
-
-
-qx.Proto._onclick = function(e) {
- this.setChecked(true);
-}
-
-qx.Proto._onkeyup = function(e)
-{
- if(e.getKeyIdentifier() == "Space") {
- this.setChecked(true);
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if(this.getDisposed()) {
- return;
- }
-
- this.removeEventListener("keypress", this._onkeypress);
- return qx.ui.form.CheckBox.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js
deleted file mode 100755
index bee201cf1f..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * @event execute {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.form.RepeatButton", qx.ui.form.Button,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
-{
- qx.ui.form.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
- this._timer = new qx.client.Timer;
- this._timer.setInterval(this.getInterval());
- this._timer.addEventListener("interval", this._oninterval, this);
-});
-
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 100 });
-qx.OO.addProperty({ name : "firstInterval", type : "number", defaultValue : 500 });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
- if (e.getTarget() != this || !e.isLeftButtonPressed()) {
- return;
- }
-
- this._executed = false;
-
- this._timer.setInterval(this.getFirstInterval());
- this._timer.start();
-
- this.removeState("abandoned");
- this.addState("pressed");
-}
-
-qx.Proto._onmouseup = function(e)
-{
- this.setCapture(false);
-
- if (!this.hasState("abandoned"))
- {
- this.addState("over");
-
- if (this.hasState("pressed") && !this._executed) {
- this.execute();
- }
- }
-
- this._timer.stop();
-
- this.removeState("abandoned");
- this.removeState("pressed");
-}
-
-qx.Proto._oninterval = function(e)
-{
- this._timer.stop();
- this._timer.setInterval(this.getInterval());
- this._timer.start();
-
- this._executed = true;
- this.createDispatchEvent("execute");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return true;
- }
-
- if (this._timer)
- {
- this._timer.stop();
- this._timer.dispose();
- this._timer = null;
- }
-
- return qx.ui.form.Button.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js
deleted file mode 100644
index 651c173c93..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js
+++ /dev/null
@@ -1,694 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-#embed(qx.widgettheme/arrows/up_small.gif)
-#embed(qx.widgettheme/arrows/down_small.gif)
-
-************************************************************************ */
-
-/**
- * @event change {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.form.Spinner", qx.ui.layout.HorizontalBoxLayout,
-function(vMin, vValue, vMax)
-{
- qx.ui.layout.HorizontalBoxLayout.call(this);
-
- // ************************************************************************
- // BEHAVIOR
- // ************************************************************************
- this.setTabIndex(-1);
-
- if (qx.core.Client.getInstance().isMshtml()) {
- this.setStyleProperty("fontSize", "0px");
- }
-
-
- // ************************************************************************
- // MANAGER
- // ************************************************************************
- this._manager = new qx.type.Range();
-
-
- // ************************************************************************
- // TEXTFIELD
- // ************************************************************************
- this._textfield = new qx.ui.form.TextField;
- this._textfield.setAppearance("spinner-field");
- this._textfield.setValue(String(this._manager.getValue()));
-
- this.add(this._textfield);
-
-
- // ************************************************************************
- // BUTTON LAYOUT
- // ************************************************************************
- this._buttonlayout = new qx.ui.layout.VerticalBoxLayout;
- this._buttonlayout.setWidth("auto");
- this.add(this._buttonlayout);
-
-
- // ************************************************************************
- // UP-BUTTON
- // ************************************************************************
- this._upbutton = new qx.ui.basic.Image("widget/arrows/up_small.gif");
- this._upbutton.setAppearance("spinner-button-up");
- this._buttonlayout.add(this._upbutton);
-
-
- // ************************************************************************
- // DOWN-BUTTON
- // ************************************************************************
- this._downbutton = new qx.ui.basic.Image("widget/arrows/down_small.gif");
- this._downbutton.setAppearance("spinner-button-down");
- this._buttonlayout.add(this._downbutton);
-
-
- // ************************************************************************
- // TIMER
- // ************************************************************************
- this._timer = new qx.client.Timer(this.getInterval());
-
-
- // ************************************************************************
- // EVENTS
- // ************************************************************************
- this.addEventListener("keypress", this._onkeypress, this);
- this.addEventListener("keydown", this._onkeydown, this);
- this.addEventListener("keyup", this._onkeyup, this);
- this.addEventListener("mousewheel", this._onmousewheel, this);
-
- this._textfield.addEventListener("input", this._oninput, this);
- this._textfield.addEventListener("blur", this._onblur, this);
- this._upbutton.addEventListener("mousedown", this._onmousedown, this);
- this._downbutton.addEventListener("mousedown", this._onmousedown, this);
- this._manager.addEventListener("change", this._onchange, this);
- this._timer.addEventListener("interval", this._oninterval, this);
-
-
- // ************************************************************************
- // INITIALIZATION
- // ************************************************************************
-
- if(vMin != null) {
- this.setMin(vMin);
- }
-
- if(vMax != null) {
- this.setMax(vMax);
- }
-
- if(vValue != null) {
- this.setValue(vValue);
- }
-});
-
-
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "spinner" });
-
-/*!
- The amount to increment on each event (keypress or mousedown).
-*/
-qx.OO.addProperty({ name : "incrementAmount", type : "number", defaultValue : 1 });
-
-/*!
- The amount to increment on each event (keypress or mousedown).
-*/
-qx.OO.addProperty({ name : "wheelIncrementAmount", type : "number", defaultValue : 1 });
-
-/*!
- The amount to increment on each pageup / pagedown keypress
-*/
-qx.OO.addProperty({ name : "pageIncrementAmount", type : "number", defaultValue : 10 });
-
-/*!
- The current value of the interval (this should be used internally only).
-*/
-qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 100 });
-
-/*!
- The first interval on event based shrink/growth of the value.
-*/
-qx.OO.addProperty({ name : "firstInterval", type : "number", defaultValue : 500 });
-
-/*!
- This configures the minimum value for the timer interval.
-*/
-qx.OO.addProperty({ name : "minTimer", type : "number", defaultValue : 20 });
-
-/*!
- Decrease of the timer on each interval (for the next interval) until minTimer reached.
-*/
-qx.OO.addProperty({ name : "timerDecrease", type : "number", defaultValue : 2 });
-
-/*!
- If minTimer was reached, how much the amount of each interval should growth (in relation to the previous interval).
-*/
-qx.OO.addProperty({ name : "amountGrowth", type : "number", defaultValue : 1.01 });
-
-
-qx.Proto._modifyIncrementAmount = function(propValue, propOldValue, propData)
-{
- this._computedIncrementAmount = propValue;
- return true;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- PREFERRED DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function() {
- return 50;
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
- return 14;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- KEY EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeypress = function(e)
-{
- var vIdentifier = e.getKeyIdentifier();
-
- if (vIdentifier == "Enter" && !e.isAltPressed())
- {
- this._checkValue(true, false, false);
- this._textfield.selectAll();
- }
- else
- {
- switch (vIdentifier)
- {
- case "Up":
- case "Down":
-
- case "Left":
- case "Right":
-
- case "Shift":
- case "Control":
- case "Alt":
-
- case "Escape":
- case "Delete":
- case "Backspace":
-
- case "Insert":
-
- case "Home":
- case "End":
-
- case "PageUp":
- case "PageDown":
-
- case "NumLock":
- case "Tab":
- break;
-
- default:
- if (vIdentifier >= "0" && vIdentifier <= "9") {
- return;
- }
-
- e.preventDefault();
- }
- }
-}
-
-qx.Proto._onkeydown = function(e)
-{
- var vIdentifier = e.getKeyIdentifier();
-
- if (this._intervalIncrease == null)
- {
- switch(vIdentifier)
- {
- case "Up":
- case "Down":
- this._intervalIncrease = vIdentifier == "Up";
- this._intervalMode = "single";
-
- this._resetIncrements();
- this._checkValue(true, false, false);
-
- this._increment();
- this._timer.startWith(this.getFirstInterval());
-
- break;
-
- case "PageUp":
- case "PageDown":
- this._intervalIncrease = vIdentifier == "PageUp";
- this._intervalMode = "page";
-
- this._resetIncrements();
- this._checkValue(true, false, false);
-
- this._pageIncrement();
- this._timer.startWith(this.getFirstInterval());
-
- break;
- }
- }
-}
-
-qx.Proto._onkeyup = function(e)
-{
- if (this._intervalIncrease != null)
- {
- switch(e.getKeyIdentifier())
- {
- case "Up":
- case "Down":
- case "PageUp":
- case "PageDown":
- this._timer.stop();
-
- this._intervalIncrease = null;
- this._intervalMode = null;
- }
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- MOUSE EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
- if (!e.isLeftButtonPressed()) {
- return;
- }
-
- this._checkValue(true);
-
- var vButton = e.getCurrentTarget();
-
- vButton.addState("pressed");
-
- vButton.addEventListener("mouseup", this._onmouseup, this);
- vButton.addEventListener("mouseout", this._onmouseup, this);
-
- this._intervalIncrease = vButton == this._upbutton;
- this._resetIncrements();
- this._increment();
-
- this._textfield.selectAll();
-
- this._timer.setInterval(this.getFirstInterval());
- this._timer.start();
-}
-
-qx.Proto._onmouseup = function(e)
-{
- var vButton = e.getCurrentTarget();
-
- vButton.removeState("pressed");
-
- vButton.removeEventListener("mouseup", this._onmouseup, this);
- vButton.removeEventListener("mouseout", this._onmouseup, this);
-
- this._textfield.selectAll();
- this._textfield.setFocused(true);
-
- this._timer.stop();
- this._intervalIncrease = null;
-}
-
-qx.Proto._onmousewheel = function(e)
-{
- this._manager.setValue(this._manager.getValue() + this.getWheelIncrementAmount() * e.getWheelDelta());
- this._textfield.selectAll();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- OTHER EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oninput = function(e) {
- this._checkValue(true, true);
-}
-
-qx.Proto._onchange = function(e)
-{
- var vValue = this._manager.getValue();
-
- this._textfield.setValue(String(vValue));
-
- if (vValue == this.getMin())
- {
- this._downbutton.removeState("pressed");
- this._downbutton.setEnabled(false);
- this._timer.stop();
- }
- else
- {
- this._downbutton.setEnabled(true);
- }
-
- if (vValue == this.getMax())
- {
- this._upbutton.removeState("pressed");
- this._upbutton.setEnabled(false);
- this._timer.stop();
- }
- else
- {
- this._upbutton.setEnabled(true);
- }
-
- if (this.hasEventListeners("change")) {
- this.dispatchEvent(new qx.event.type.Event("change"), true);
- }
-}
-
-qx.Proto._onblur = function(e) {
- this._checkValue(false);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- MAPPING TO RANGE MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setValue = function(nValue) {
- this._manager.setValue(nValue);
-}
-
-qx.Proto.getValue = function() {
- this._checkValue(true);
- return this._manager.getValue();
-}
-
-qx.Proto.resetValue = function() {
- return this._manager.resetValue();
-}
-
-qx.Proto.setMax = function(vMax) {
- return this._manager.setMax(vMax);
-}
-
-qx.Proto.getMax = function() {
- return this._manager.getMax();
-}
-
-qx.Proto.setMin = function(vMin) {
- return this._manager.setMin(vMin);
-}
-
-qx.Proto.getMin = function() {
- return this._manager.getMin();
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- INTERVAL HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._intervalIncrease = null;
-
-qx.Proto._oninterval = function(e)
-{
- this._timer.stop();
- this.setInterval(Math.max(this.getMinTimer(), this.getInterval()-this.getTimerDecrease()));
-
- if (this._intervalMode == "page")
- {
- this._pageIncrement();
- }
- else
- {
- if (this.getInterval() == this.getMinTimer()) {
- this._computedIncrementAmount = this.getAmountGrowth() * this._computedIncrementAmount;
- }
-
- this._increment();
- }
-
- switch(this._intervalIncrease)
- {
- case true:
- if (this.getValue() == this.getMax()) {
- return;
- }
-
- case false:
- if (this.getValue() == this.getMin()) {
- return;
- }
- }
-
- this._timer.restartWith(this.getInterval());
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto._checkValue = function(acceptEmpty, acceptEdit)
-{
- var el = this._textfield.getElement();
-
- if (!el) {
- return;
- }
-
- if (el.value == "")
- {
- if (!acceptEmpty)
- {
- el.value = this.resetValue();
- this._textfield.selectAll();
-
- return;
- }
- }
- else
- {
- // cache working variable
- var val = el.value;
-
- // fix leading '0'
- if (val.length > 1)
- {
- while(val.charAt(0) == "0") {
- val = val.substr(1, val.length);
- }
-
- var f1 = parseInt(val) || 0;
-
- if (f1 != el.value) {
- el.value = f1;
- return;
- }
- }
-
- // fix for negative integer handling
- if (val == "-" && acceptEmpty && this.getMin() < 0)
- {
- if (el.value != val) {
- el.value = val;
- }
-
- return;
- }
-
- // parse the string
- val = parseInt(val);
-
- // main check routine
- var doFix = true;
- var fixedVal = this._manager._checkValue(val);
-
- if (isNaN(fixedVal)) {
- fixedVal = this._manager.getValue();
- }
-
- // handle empty string
- if (acceptEmpty && val == "")
- {
- doFix = false;
- }
- else if (!isNaN(val))
- {
- // check for editmode in keypress events
- if (acceptEdit)
- {
- // fix min/max values
- if (val > fixedVal && !(val > 0 && fixedVal <= 0) && String(val).length < String(fixedVal).length)
- {
- doFix = false;
- }
- else if (val < fixedVal && !(val < 0 && fixedVal >= 0) && String(val).length < String(fixedVal).length)
- {
- doFix = false;
- }
- }
- }
-
- // apply value fix
- if (doFix && el.value != fixedVal) {
- el.value = fixedVal;
- }
-
- // inform manager
- if (!acceptEdit) {
- this._manager.setValue(fixedVal);
- }
- }
-}
-
-qx.Proto._increment = function() {
- this._manager.setValue(this._manager.getValue() + ((this._intervalIncrease ? 1 : - 1) * this._computedIncrementAmount));
-}
-
-qx.Proto._pageIncrement = function() {
- this._manager.setValue(this._manager.getValue() + ((this._intervalIncrease ? 1 : - 1) * this.getPageIncrementAmount()));
-}
-
-qx.Proto._resetIncrements = function()
-{
- this._computedIncrementAmount = this.getIncrementAmount();
- this.resetInterval();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return;
- }
-
- this.removeEventListener("keypress", this._onkeypress, this);
- this.removeEventListener("keydown", this._onkeydown, this);
- this.removeEventListener("keyup", this._onkeyup, this);
- this.removeEventListener("mousewheel", this._onmousewheel, this);
-
- if (this._textfield)
- {
- this._textfield.removeEventListener("blur", this._onblur, this);
- this._textfield.removeEventListener("input", this._oninput, this);
- this._textfield.dispose();
- this._textfield = null;
- }
-
- if (this._buttonlayout)
- {
- this._buttonlayout.dispose();
- this._buttonlayout = null;
- }
-
- if (this._upbutton)
- {
- this._upbutton.removeEventListener("mousedown", this._onmousedown, this);
- this._upbutton.dispose();
- this._upbutton = null;
- }
-
- if (this._downbutton)
- {
- this._downbutton.removeEventListener("mousedown", this._onmousedown, this);
- this._downbutton.dispose();
- this._downbutton = null;
- }
-
- if (this._timer)
- {
- this._timer.removeEventListener("interval", this._oninterval, this);
- this._timer.stop();
- this._timer.dispose();
- this._timer = null;
- }
-
- if (this._manager)
- {
- this._manager.removeEventListener("change", this._onchange, this);
- this._manager.dispose();
- this._manager = null;
- }
-
- return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-} \ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js
deleted file mode 100644
index e3ceae4aa6..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * @param vValue {String} this string is ddisplayed as the value of the TextArea.
- */
-qx.OO.defineClass("qx.ui.form.TextArea", qx.ui.form.TextField,
-function(vValue)
-{
- qx.ui.form.TextField.call(this, vValue);
-
- this.setTagName("textarea");
- this.removeHtmlProperty("type");
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "text-area" });
-
-qx.OO.addProperty({ name : "wrap", type : "boolean" });
-
-if (qx.core.Client.getInstance().isMshtml())
-{
- qx.Proto._modifyWrap = function(propValue, propOldValue, propData) {
- return this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
- }
-}
-else
-{
- qx.Proto._modifyWrap = function(propValue, propOldValue, propData) {
- return this.setHtmlProperty("wrap", propValue ? "soft" : "off");
- }
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
- return 60;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js
deleted file mode 100644
index b11eeb1870..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js
+++ /dev/null
@@ -1,540 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-#require(qx.renderer.font.FontCache)
-#after(qx.renderer.font.FontObject)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.TextField", qx.ui.basic.Terminator,
-function(vValue)
-{
- // ************************************************************************
- // INIT
- // ************************************************************************
- qx.ui.basic.Terminator.call(this);
-
- if (typeof vValue === "string") {
- this.setValue(vValue);
- }
-
-
- // ************************************************************************
- // BEHAVIOR
- // ************************************************************************
- this.setTagName("input");
- this.setHtmlProperty("type", "text");
- this.setHtmlAttribute("autocomplete", "OFF");
- this.setTabIndex(1);
- this.setSelectable(true);
-
-
- // ************************************************************************
- // EVENTS
- // ************************************************************************
- this.enableInlineEvent("input");
-
- this.addEventListener("blur", this._onblur);
- this.addEventListener("focus", this._onfocus);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "text-field" });
-
-qx.OO.addProperty({ name : "value", type : "string", defaultValue : "" });
-qx.OO.addProperty({ name : "maxLength", type : "number" });
-qx.OO.addProperty({ name : "readOnly", type : "boolean" });
-
-qx.OO.addProperty({ name : "selectionStart", type : "number" });
-qx.OO.addProperty({ name : "selectionLength", type : "number" });
-qx.OO.addProperty({ name : "selectionText", type : "string" });
-
-qx.OO.addProperty({ name : "validator", type : "function" });
-
-/*!
- The font property describes how to paint the font on the widget.
-*/
-qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
-
-
-
-
-/*
----------------------------------------------------------------------------
- CLONING
----------------------------------------------------------------------------
-*/
-
-// Extend ignore list with selection properties
-qx.Proto._clonePropertyIgnoreList += ",selectionStart,selectionLength,selectionText";
-
-
-
-/*
----------------------------------------------------------------------------
- MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
- propValue ? this.removeHtmlAttribute("disabled") : this.setHtmlAttribute("disabled", "disabled");
- return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
- this._inValueProperty = true;
- this.setHtmlProperty(propData.name, propValue == null ? "" : propValue);
- delete this._inValueProperty;
-
- return true;
-}
-
-qx.Proto._modifyMaxLength = function(propValue, propOldValue, propData) {
- return propValue ? this.setHtmlProperty(propData.name, propValue) : this.removeHtmlProperty(propData.name);
-}
-
-qx.Proto._modifyReadOnly = function(propValue, propOldValue, propData) {
- return propValue ? this.setHtmlProperty(propData.name, propData.name) : this.removeHtmlProperty(propData.name);
-}
-
-qx.Proto._modifyFont = function(propValue, propOldValue, propData)
-{
- this._invalidatePreferredInnerDimensions();
-
- if (propValue) {
- propValue._applyWidget(this);
- } else if (propOldValue) {
- propOldValue._resetWidget(this);
- }
-
- return true;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getComputedValue = function(e)
-{
- this._visualPropertyCheck();
- return this.getElement().value;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- VALIDATION
----------------------------------------------------------------------------
-*/
-
-qx.ui.form.TextField.createRegExpValidator = function(vRegExp)
-{
- return function(s) {
- return vRegExp.test(s);
- }
-}
-
-qx.Proto.isValid = function()
-{
- var vValidator = this.getValidator();
- return !vValidator || vValidator(this.getValue());
-}
-
-qx.Proto.isComputedValid = function()
-{
- var vValidator = this.getValidator();
- return !vValidator || vValidator(this.getComputedValue());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- PREFERRED DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function() {
- return 120;
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
- return 15;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- BROWSER QUIRKS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
- qx.Proto._firstInputFixApplied = false;
-
- qx.Proto._afterAppear = function()
- {
- qx.ui.basic.Terminator.prototype._afterAppear.call(this);
-
- if (!this._firstInputFixApplied) {
- qx.client.Timer.once(this._ieFirstInputFix, this, 1);
- }
- }
-
- /*!
- Fix IE's input event for filled text fields
- */
- qx.Proto._ieFirstInputFix = function()
- {
- this._inValueProperty = true;
- this.getElement().value = this.getValue() === null ? "" : this.getValue();
- this._firstInputFixApplied = true;
- delete this._inValueProperty;
- }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT-HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._textOnFocus = null;
-
-qx.Proto._ontabfocus = function(e) {
- this.selectAll();
-}
-
-qx.Proto._onfocus = function(e) {
- this._textOnFocus = this.getComputedValue();
-}
-
-qx.Proto._onblur = function(e)
-{
- var vValue = this.getComputedValue().toString();
-
- if (this._textOnFocus != vValue) {
- this.setValue(vValue);
- }
-
- this.setSelectionLength(0);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- CROSS-BROWSER SELECTION HANDLING
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
- /*!
- Microsoft Documentation:
- http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createrange.asp
- http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_textrange.asp
- */
-
- qx.Proto._getRange = function()
- {
- this._visualPropertyCheck();
- return this.getElement().createTextRange();
- }
-
- qx.Proto._getSelectionRange = function()
- {
- this._visualPropertyCheck();
- return this.getTopLevelWidget().getDocumentElement().selection.createRange();
- }
-
- qx.Proto.setSelectionStart = function(vStart)
- {
- this._visualPropertyCheck();
-
- var vText = this.getElement().value;
-
- // a bit hacky, special handling for line-breaks
- var i = 0;
- while (i<vStart)
- {
- // find next line break
- i = vText.indexOf("\r\n", i);
-
- if (i == -1) {
- break;
- }
-
- vStart--;
- i++;
- }
-
- var vRange = this._getRange();
-
- vRange.collapse();
- vRange.move("character", vStart);
- vRange.select();
- }
-
- qx.Proto.getSelectionStart = function()
- {
- this._visualPropertyCheck();
-
- var vSelectionRange = this._getSelectionRange();
-
- if (!this.getElement().contains(vSelectionRange.parentElement())) {
- return -1;
- }
-
- var vRange = this._getRange();
-
- vRange.setEndPoint("EndToStart", vSelectionRange);
- return vRange.text.length;
- }
-
- qx.Proto.setSelectionLength = function(vLength)
- {
- this._visualPropertyCheck();
-
- var vSelectionRange = this._getSelectionRange();
-
- if (!this.getElement().contains(vSelectionRange.parentElement())) {
- return;
- }
-
- vSelectionRange.collapse();
- vSelectionRange.moveEnd("character", vLength);
- vSelectionRange.select();
- }
-
- qx.Proto.getSelectionLength = function()
- {
- this._visualPropertyCheck();
-
- var vSelectionRange = this._getSelectionRange();
-
- if (!this.getElement().contains(vSelectionRange.parentElement())) {
- return 0;
- }
-
- return vSelectionRange.text.length;
- }
-
- qx.Proto.setSelectionText = function(vText)
- {
- this._visualPropertyCheck();
-
- var vStart = this.getSelectionStart();
- var vSelectionRange = this._getSelectionRange();
-
- if (!this.getElement().contains(vSelectionRange.parentElement())) {
- return;
- }
-
- vSelectionRange.text = vText;
-
- // apply text to internal storage
- this.setValue(this.getElement().value);
-
- // recover selection (to behave the same gecko does)
- this.setSelectionStart(vStart);
- this.setSelectionLength(vText.length);
-
- return true;
- }
-
- qx.Proto.getSelectionText = function()
- {
- this._visualPropertyCheck();
-
- var vSelectionRange = this._getSelectionRange();
-
- if (!this.getElement().contains(vSelectionRange.parentElement())) {
- return "";
- }
-
- return vSelectionRange.text;
- }
-
- qx.Proto.selectAll = function()
- {
- this._visualPropertyCheck();
-
- if (this.getValue() != null)
- {
- this.setSelectionStart(0);
- this.setSelectionLength(this.getValue().length);
- }
-
- // to be sure we get the element selected
- this.getElement().select();
- }
-
- qx.Proto.selectFromTo = function(vStart, vEnd)
- {
- this._visualPropertyCheck();
-
- this.setSelectionStart(vStart);
- this.setSelectionLength(vEnd-vStart);
- }
-}
-else
-{
- qx.Proto.setSelectionStart = function(vStart)
- {
- this._visualPropertyCheck();
- this.getElement().selectionStart = vStart;
- }
-
- qx.Proto.getSelectionStart = function()
- {
- this._visualPropertyCheck();
- return this.getElement().selectionStart;
- }
-
- qx.Proto.setSelectionLength = function(vLength)
- {
- this._visualPropertyCheck();
-
- var el = this.getElement();
- if (qx.util.Validation.isValidString(el.value)) {
- el.selectionEnd = el.selectionStart + vLength;
- }
- }
-
- qx.Proto.getSelectionLength = function()
- {
- this._visualPropertyCheck();
-
- var el = this.getElement();
- return el.selectionEnd - el.selectionStart;
- }
-
- qx.Proto.setSelectionText = function(vText)
- {
- this._visualPropertyCheck();
-
- var el = this.getElement();
-
- var vOldText = el.value;
- var vStart = el.selectionStart;
-
- var vOldTextBefore = vOldText.substr(0, vStart);
- var vOldTextAfter = vOldText.substr(el.selectionEnd);
-
- var vValue = el.value = vOldTextBefore + vText + vOldTextAfter;
-
- // recover selection
- el.selectionStart = vStart;
- el.selectionEnd = vStart + vText.length;
-
- // apply new value to internal cache
- this.setValue(vValue);
-
- return true;
- }
-
- qx.Proto.getSelectionText = function()
- {
- this._visualPropertyCheck();
-
- return this.getElement().value.substr(this.getSelectionStart(), this.getSelectionLength());
- }
-
- qx.Proto.selectAll = function()
- {
- this._visualPropertyCheck();
-
- this.getElement().select();
- }
-
- qx.Proto.selectFromTo = function(vStart, vEnd)
- {
- this._visualPropertyCheck();
-
- var el = this.getElement();
- el.selectionStart = vStart;
- el.selectionEnd = vEnd;
- }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return;
- }
-
- this.removeEventListener("blur", this._onblur);
- this.removeEventListener("focus", this._onfocus);
-
- qx.ui.basic.Terminator.prototype.dispose.call(this);
-}