[Laszlo-checkins] r6769 - openlaszlo/trunk/lps/components/base

jcrowley@openlaszlo.org jcrowley at openlaszlo.org
Tue Oct 9 09:37:47 PDT 2007


Author: jcrowley
Date: 2007-10-09 09:37:23 -0700 (Tue, 09 Oct 2007)
New Revision: 6769

Modified:
   openlaszlo/trunk/lps/components/base/basecombobox.lzx
Log:
Change 20071009-jcrowley-z by jcrowley at doctormanhattan.mshome.net on 2007-10-09 12:34:27 EDT
    in /Users/jcrowley/src/svn/openlaszlo/trunk-f
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: (Already approved by Phil; am integrating into a different
	local branch before checking in.)  long comobox does not
	render properly on firefox 2.0

New Features:

Bugs Fixed: LPP-4192 - long comobox does not render properly on
	firefox 2.0

Technical Reviewer: pbr
QA Reviewer: henry
Doc Reviewer: 

Documentation:

Release Notes:

Details: This one wasn't really that much of a bug, since
	you can set limits on the list size and give it
	a scrollbar if you have to clip it, but I thought
	there should still be some kind of check to make
	sure it's not longer than the canvas.  I added
	attribute 'sizetocanvas', default true, to set
	the number of visible elements in an expanded
	list to fit the list on the canvas.  In the likely
	rare event one wants to let the list spill off the
	canvas, they can always set sizetocanvas to false.

Tests: Run:

<canvas>
    <combobox id="serviceCombo"
              width="130"
              defaulttext="choose one..." editable="false" enabled="true">
        <textlistitem datapath="services:/services/service" text="$path{'@name'}"
                      value="$path{'@value'}"/>
    </combobox>
    <dataset name="services">
        <services>
            <service name="adamsboswe" value="adamsboswe"/>
            <service name="323iactive" value="323iactive"/>
            <service name="aecom" value="aecom"/>
            <service name="1stomni" value="1stomni"/>
            <service name="acisol" value="acisol"/>
            <service name="ares" value="ares"/>
            <service name="180solutio" value="180solutio"/>
            <service name="ameris" value="ameris"/>
            <service name="11below" value="11below"/>
            <service name="advcommerc" value="advcommerc"/>
            <service name="alloy" value="alloy"/>
            <service name="abnerherrm" value="abnerherrm"/>
            <service name="active" value="active"/>
            <service name="activewind" value="activewind"/>
            <service name="aei" value="aei"/>
            <service name="adelante" value="adelante"/>
            <service name="3spn" value="3spn"/>
            <service name="ampere" value="ampere"/>
            <service name="abundant" value="abundant"/>
            <service name="advantage" value="advantage"/>
            <service name="aethionsi" value="aethionsi"/>
            <service name="altrec" value="altrec"/>
            <service name="arin" value="arin"/>
            <service name="aplia" value="aplia"/>
            <service name="ailiant" value="ailiant"/>
            <service name="about" value="about"/>
            <service name="amerisec" value="amerisec"/>
            <service name="alorica" value="alorica"/>
            <service name="americasho" value="americasho"/>
            <service name="americanap" value="americanap"/>
            <service name="anomaly" value="anomaly"/>
            <service name="anyware" value="anyware"/>
            <service name="aloricaden" value="aloricaden"/>
            <service name="appdiscove" value="appdiscove"/>
            <service name="alpaul" value="alpaul"/>
            <service name="advpersonn" value="advpersonn"/>
            <service name="accesscomm" value="accesscomm"/>
            <service name="absclothin" value="absclothin"/>
            <service name="ainet" value="ainet"/>
            <service name="aismedia" value="aismedia"/>
            <service name="americom" value="americom"/>
            <service name="accessline" value="accessline"/>
            <service name="altntech" value="altntech"/>
            <service name="apex" value="apex"/>
            <service name="adinfuse" value="adinfuse"/>
            <service name="actsgroup" value="actsgroup"/>
            <service name="alliance" value="alliance"/>
            <service name="alphazeta" value="alphazeta"/>
            <service name="akamai" value="akamai"/>
            <service name="aitcc" value="aitcc"/>
            <service name="accellion" value="accellion"/>
            <service name="accor" value="accor"/>
            <service name="agile" value="agile"/>
            <service name="alta" value="alta"/>
            <service name="apptrix" value="apptrix"/>
            <service name="arcap" value="arcap"/>
            <service name="addante" value="addante"/>
            <service name="3amlabs" value="3amlabs"/>
            <service name="altadisusa" value="altadisusa"/>
            <service name="amgen" value="amgen"/>
            <service name="SJC-Lab" value="SJC-Lab"/>
            <service name="accel" value="accel"/>
            <service name="americanto" value="americanto"/>
            <service name="apple" value="apple"/>
            <service name="aci" value="aci"/>
            <service name="accipiter" value="accipiter"/>
            <service name="adpinvest" value="adpinvest"/>
            <service name="acsonline" value="acsonline"/>
            <service name="1ix" value="1ix"/>
            <service name="aas" value="aas"/>
            <service name="altoh" value="altoh"/>
            <service name="adaptivepa" value="adaptivepa"/>
            <service name="abs" value="abs"/>
            <service name="aim2game" value="aim2game"/>
            <service name="areatech" value="areatech"/>
            <service name="appiq" value="appiq"/>
            <service name="advancedac" value="advancedac"/>
            <service name="1stfinanci" value="1stfinanci"/>
            <service name="aig" value="aig"/>
            <service name="800one" value="800one"/>
            <service name="aptela" value="aptela"/>
            <service name="activegrou" value="activegrou"/>
            <service name="apress" value="apress"/>
            <service name="3eco" value="3eco"/>
            <service name="allrecipes" value="allrecipes"/>
            <service name="amselect" value="amselect"/>
            <service name="alpine" value="alpine"/>
            <service name="argis" value="argis"/>
            <service name="3dblinds" value="3dblinds"/>
            <service name="ardennes" value="ardennes"/>
            <service name="003realty" value="003realty"/>
            <service name="amgenuk" value="amgenuk"/>
            <service name="adaptec" value="adaptec"/>
            <service name="aonwarrant" value="aonwarrant"/>
            <service name="adpark" value="adpark"/>
            <service name="apartment" value="apartment"/>
            <service name="arenaone" value="arenaone"/>
            <service name="adchemy" value="adchemy"/>
            <service name="2wire" value="2wire"/>
            <service name="advancecab" value="advancecab"/>
        </services>
    </dataset>
</canvas>

In both modified and unmodified branches.  Note that in unmodified,
it spills off into forever.  In modified, it stops just before, and
there's a scrollbar.  (If one explicitly sets the number of visible
elements, it'll override this.)



Modified: openlaszlo/trunk/lps/components/base/basecombobox.lzx
===================================================================
--- openlaszlo/trunk/lps/components/base/basecombobox.lzx	2007-10-09 16:36:42 UTC (rev 6768)
+++ openlaszlo/trunk/lps/components/base/basecombobox.lzx	2007-10-09 16:37:23 UTC (rev 6769)
@@ -202,7 +202,7 @@
 
             <state name="non_editable_state" >
                 <text x="2" y="1" name="cbtext" width="${parent.width - 4}"
-                    clickable="true" focusable="true" resize="false">
+                    clickable="true" focusable="true">
                     <attribute name="text" type="string" />
 
                     <!-- arrow down and up, and spacebar all popup floatinglist, and pass the key event to it -->
@@ -279,6 +279,16 @@
             <handler name="onconstruct">
                 this.dataoption = owner.dataoption;
             </handler>
+            <handler name="oninit">
+                <![CDATA[
+                // Clips to the canvas, so it doesn't spill off down into
+                // forever and subsequently look all goofy.
+                if(this.owner.shownitems == -1){
+                    var ih = Math.floor((canvas.height - owner.y) / owner.height);
+                    this.setAttribute('shownitems', ih);
+                }
+                ]]>
+            </handler>
 
             <method name="_dokeyup" args="kc"
                     event="onkeyup">



More information about the Laszlo-checkins mailing list