You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by mt...@apache.org on 2006/11/03 02:21:35 UTC
svn commit: r470637 - /incubator/xap/trunk/src/xap/widgets/ListBox.js
Author: mturyn
Date: Thu Nov 2 18:21:34 2006
New Revision: 470637
URL: http://svn.apache.org/viewvc?view=rev&rev=470637
Log:
Added mechanisms for keeping official size>=2, so that the listbox doesn't become a dropdown as it would for size==1.
Modified:
incubator/xap/trunk/src/xap/widgets/ListBox.js
Modified: incubator/xap/trunk/src/xap/widgets/ListBox.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/widgets/ListBox.js?view=diff&rev=470637&r1=470636&r2=470637
==============================================================================
--- incubator/xap/trunk/src/xap/widgets/ListBox.js (original)
+++ incubator/xap/trunk/src/xap/widgets/ListBox.js Thu Nov 2 18:21:34 2006
@@ -15,15 +15,21 @@
dojo.inherits(xap.widgets.ListBox, dojo.widget.HtmlWidget);
dojo.lang.extend(xap.widgets.ListBox, {
- templateString: '<div><form><select dojoAttachPoint="select"></select></form></div>',
+// If size==1, get a combo box, which we don't want, so
+// start with size 2, increment if necessary as we add children:
+ trueSize:0,
+ templateString: '<div><form><select dojoAttachPoint="select" size="2"></select></form></div>',
templateCssPath: null,
widgetType: "ListBox",
isContainer: true,
addChild: function(child) { /* elementListItem */
- this.select.appendChild(child.domNode);
-
- //alert('adding an option');
+ this.select.appendChild(child.domNode);
+ ++this.trueSize ;
+ if( trueSize>1){
+ this.select.size = trueSize ;
+ }
+ //alert('adding an option');
},
removeChild: function(child) {
@@ -34,7 +40,14 @@
var options = this.select.options
for (var i = 0; i < options.length; i++) {
- if (options[i] == child.domNode) options[i] = null;
+ if (options[i] == child.domNode){
+ options[i] = null;
+ // Keep this from turning a list box into a combo box
+ --this.trueSize ;
+ if(this.trueSize > 1){
+ this.select.size = this.trueSize ;
+ }
+ }
/* IE doesn't update the page with dom node removal so we have to do this*/
}
@@ -44,6 +57,7 @@
obj && obj[fn] && obj[fn](param);
}
}
+
}
);