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 [EMAIL PROTECTED] 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">


_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins

Reply via email to