Thanks.
When some other more basic functionality of my app is working, I'll try your
code, and try to update the qx.ui.window.Window class.
Ways OfTheEarth wrote:
>
> Hi there,
>
> I have implemented a similar thing in my Qx 0.5.x application.
>
> My app has lots of windows, each with toolbars and buttons etc. which need
> to be "disabled" while a window is either busy (awaiting a response from
> the server) or blurred (not in focus).
>
> Here is some code pasted from one of my QxWindow subclasses (you will need
> to clean out some of my non-generic code, but it is a good place to start)
>
>
> Add this to your QxWindow subclass:
>
>
> // A String to identify blocker divs - also appears in some Selenium
> tests.
> QxLiveWindow.BLOCKER_ID = "blocker";
>
> /*
> * A flag that indicates whether or not this window is covered by an
> invisible
> * blocker div that prevents the user from clicking any of its widgets.
> *
> * Note that isBlocked is distinct from isBusy. All windows that are not
> in
> * focus are blocked, thou they may or may not be busy.
> */
> QxLiveWindow.addProperty({ name : "isBlocked", type :
> QxConst.TYPEOF_BOOLEAN, defaultValue : false});
>
> /*
> A private method which adds a blocker div, preventing widgets within
> this window from being clicked.
> */
> proto._addBlocker = function()
> {
> if (!this.getIsBlocked()) {
>
> // Reuse a blocker instance if available
> var blocker= DefaultQxPool.get(QxLiveWindow.BLOCKER_ID);
> if (! blocker) {
> blocker = new QxTerminator();
> };
>
> // Position our blocker instance over this window
> with (blocker) {
> setTop(this.getTop() );
> setLeft(this.getLeft() );
> setHeight(this.getHeight());
> setWidth(this.getWidth());
>
> // Set the z-index to above this window
> setZIndex((this.getZIndex() + 1));
> setBackgroundColor("gray");
> setOpacity(0.2);
>
> // this only applies when busy!
> //setCursor(QxConst.CURSOR_WAIT);
>
> // Insert an arbitary html attribute into the DOM so that the
> // automated tests can determine when the blocker is present.
> setHtmlAttribute(QxLiveWindow.BLOCKER_ID, "true");
> }
>
> // Append blocker to the DOM
> DOC.add(blocker);
> this.setIsBlocked(true);
>
> // Add a reference to our blocker as UserData so that we can
> retrieve it
> this.setUserData(QxLiveWindow.BLOCKER_ID, blocker);
>
> // keep our blocker's z-index in synch with this window
> this.addEventListener("changeZIndex", synchBlockerZIndex, null);
>
> // listen for clicks on the blocker
> blocker.addEventListener(QxConst.EVENT_TYPE_CLICK, function (e) {
>
> // block the event from going anywhere else
> e.setPropagationStopped(true);
> e.setBubbles(false);
>
> // focus this window
> this.focus();
>
> }, this);
> }
> }
>
>
> /*
> A private method which removes the blocker div.
> */
> proto._removeBlocker = function()
> {
>
> if ( this.getIsBlocked() ) {
> // uncover window
> var blocker = this.getUserData(QxLiveWindow.BLOCKER_ID);
>
> this.removeEventListener("changeZIndex", synchBlockerZIndex,
> null);
> blocker.removeHtmlAttribute(QxLiveWindow.BLOCKER_ID);
> DOC.remove(blocker);
> this.setIsBlocked(false);
>
> // Release the blocker to the pool for use next time.
> DefaultQxPool.release(blocker, QxLiveWindow.BLOCKER_ID);
> }
> }
>
>
> I am not sure if this is the same in Qx 0.6, but in Qx 0.5.x you will also
> need to override QxWindow's zindex allocation so that you can insert a
> blocker between QxWindows. By default Qx 0.5.x makes window instances 1
> z-index apart, but we need a gap of at least 1 z-index, so:
>
> QxWindow.prototype._sendTo = function()
> {
> var vAll =
> QxUtil.convertObjectValuesToArray(QxWindowManager.getAll()).sort(QxCompare.byZIndex);
> var vLength = vAll.length;
> var vIndex = this._minZIndex;
>
> for (var i=0; i<vLength; i++) {
> vIndex = vIndex + 2;
> vAll[i].setZIndex(vIndex);
> };
> };
>
> Finally, all window instances need access to this z-index synch method so
> that when you change windows, their "blockers" follow them around.
> Ideally you would put this method on a window manager class of some sort -
> but if you don't have one it will work ok in the global scope:
>
> synchBlockerZIndex = function (e)
> {
> var window = e.getTarget();
> if (window) {
> var blocker = window.getUserData(QxLiveWindow.BLOCKER_ID);
> if (blocker) {
> // window.debug("setting blocker z-index=" +
> (window.getZIndex() + 1));
> blocker.setZIndex((window.getZIndex() + 1));
> }
> }
> }
>
>
> Hope that is useful,
>
> Simon
>
>
> dperez <[EMAIL PROTECTED]> wrote:
> That's a good idea :-)
> Maybe this could be added to qooxdoo.
>
>
> Jim Hunter-2 wrote:
>>
>> I have not tried this yet, but you could simply try to overlay a panel on
>> top of everything before you create the window. Give the panel a light
>> gray
>> color and set it's transparency to 80%-90%. This should make the other
>> controls unreachable and give them a grayed out look without having to
>> touch
>> the events of any of them or the appearance.
>>
>> Jim
>>
>>
>> On 9/14/06, Tomek Loboda wrote:
>>>
>>> I like the idea. Helps the user focus on THE window. Don't know how to
>>> achieve that though :-)
>>>
>>> Best,
>>> --Tomek
>>>
>>>
>>> dperez wrote:
>>> > Hi,
>>> >
>>> > I like the behaviour of modal windows in this ZK demo:
>>> > http://www.potix.com/zkdemo/userguide/
>>> >
>>> > All the controls are darkened, when a modal window is opened, to
>>> emphasize
>>> > that they unavailable.
>>> >
>>> > Is it easy to achieve something similar with qooxdoo?
>>> > Maybe, playing with appearances.
>>> >
>>> > Regards,
>>> > David
>>>
>>>
>>> -------------------------------------------------------------------------
>>> Using Tomcat but need to do more? Need to support web services,
>>> security?
>>> Get stuff done quickly with pre-integrated technology to make your job
>>> easier
>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache
>>> Geronimo
>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>>> _______________________________________________
>>> qooxdoo-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>>
>>
>> -------------------------------------------------------------------------
>> Using Tomcat but need to do more? Need to support web services, security?
>> Get stuff done quickly with pre-integrated technology to make your job
>> easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache
>> Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> qooxdoo-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Modal-window-behaviour-in-ZK-tf2270889.html#a6319542
> Sent from the qooxdoo-devel forum at Nabble.com.
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
>
> ---------------------------------
> Do you Yahoo!?
> Listen to your personal radio station on Yahoo!7 Music
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
>
--
View this message in context:
http://www.nabble.com/Modal-window-behaviour-in-ZK-tf2270889.html#a6321291
Sent from the qooxdoo-devel forum at Nabble.com.
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel