On Fri, 2009-03-13 at 09:28 -0700, Jim Hunter wrote:
> Inside the routine where you are hiding the table, make one additional
> check to see if the table has focus, and if it does not, then hide it.
> Then on the table object, when it losses focus you can hide it then.
> Something that I have done similar to your scenario, is that I pop up
> a window that I want to be displayed until something outside the
> window is clicked, and to handle this I added a click listener to the
> main page, and every time it is clicked it looks to see if my pop up
> is visible. If it is, it simply hides it. If not it does nothing.
>
>
> Jim
>
Thanks, Jim. I considered that but didn't know if I was missing
something in my use of the Qooxdoo widgets. How do you recommend
testing for the focus on the table?
I can't find a property for the focus state in Javascript, but I found
something on the web about adding a custom variable to record the focus
state of an object when it receives focus (using the focus event on that
object). Is there a better way using a Qooxdoo property that is
automatically set with the focus state? If there is, I can't find it in
Qooxdoo either.
Thanks,
Gene
> On Fri, Mar 13, 2009 at 9:04 AM, Gene Amtower <[email protected]>
> wrote:
>
> Hello all,
>
> I'm creating popup table objects using Table.model.Simple,
> linked to user entry in a corresponding text field.
> Eventually, the textfield values are going to cause the tables
> to get populated with appropriate data as the user types, but
> for now I'm just trying to get them to display and hide
> appropriately. I'm incorporating these widgets into my page
> using the "Inline" method and corresponding DIV containers.
>
> The table is displayed correctly whenever I type in the
> textfield (using the "input" event), but it remains visible
> when I remove focus from the textfield.
>
> In the demobrowser example for popups, it uses Atom objects
> displayed through a button click event, and the popup objects
> disappear when the focus is removed from BOTH the button and
> the popup, but not before. I've examined the js code in this
> demo, and I don't see anything special there to control the
> auto-hide of the popup.
>
> I finally added a "focusout" event listener on the textfield
> to hide the popup, and it works fine unless I want to click on
> something in the popup table. In this case, the click in the
> table object is interpreted as a loss of focus on the
> textfield and the table closes. I think this is because it's
> not a child of the textfield even though it's displayed by the
> textfield event. I don't think I can add the popup table as a
> child of the textfield to prevent this because it is already
> added to the popup object. It would not make sense to "add"
> an object to two different containers, right?
>
> How do I get the tables to close whenever I click outside of
> the textfield or table, but remain as long as I'm "focused" on
> one of these two objects.
>
> Here's the popup code I'm using:
>
> // Create popup order table
> var ordertableModel = new qx.ui.table.model.Simple();
> ordertableModel.setColumns([ "Order", "Customer",
> "Date" ]);
> var ordertable = new qx.ui.table.Table(ordertableModel);
> ordertable.set({width: 400, height: 400, decorator:
> null});
>
> // Now create the popup container for ordernumbertable
> var onpopup = new qx.ui.popup.Popup(new
> qx.ui.layout.Basic());
> onpopup.add(ordertable);
>
> // Add a popup listener
> orderno.addListener("input", function(e) {
> onpopup.placeToWidget(orderno, true);
> onpopup.show();
> }, this);
>
> // Add a popup listener
> orderno.addListener("focusout", function(e) {
> onpopup.hide();
> });
>
> BTW, I've added two different textfield/table pairs in my
> page, and when I click on the second textfield, the popup
> table from the first textfield remains visible, even when the
> popup table from the second textfield is displayed, but if I
> click within the second popup table, THEN the first popup
> table goes away.
>
> Am I missing something basic in the popup object settings? Is
> this because I'm using the Inline method instead of an
> application method? Or is something not working as it should?
>
> Thanks,
>
> Gene Amtower
> PC Backup
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel