[OpenAjaxGadgets] Request a widget mode

Jon Ferraiolo jferrai at us.ibm.com
Wed Apr 15 07:19:44 PDT 2009


So you are suggesting that the first time the 'onModeChanged' event
happens, the payload doesn't include an oldMode property? In other words,
the first time the widget will receive:

{
newMode: whatever.
renderedBy: whatever
}

whereas for all subsequent calls the widget will receive:

{
oldMode: whatever,
newMode: whatever.
renderedBy: whatever
}

Right? (Of course, Howard has doubts about 'renderedBy'):

Thanks.
Jon




                                                                           
             Rich                                                          
             Thompson/Watson/I                                             
             BM at IBMUS                                                   To 
             Sent by:                  "gadgets at openajax.org"              
             gadgets-bounces at o         <gadgets at openajax.org>              
             penajax.org                                                cc 
                                                                           
                                                                   Subject 
             04/15/2009 06:16          Re: [OpenAjaxGadgets] Request a     
             AM                        widget mode                         
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           





We are trying "oldMode" being undefined though may switch this to "view" if
it causes problems for simpler widgets. The widget's content node exists,
but is not spliced into the html dom until the modeChanged event is fired.
This allows widgets that do not need the subtleties of the more advanced
use cases to do all of their processing in onLoad (common use case for
simpler widgets) with the container managing when the prepared dom tree is
actually shown to the use, much as it might for a widget which is initially
hidden. More advanced widgets can separate their initialization logic
(onLoad) from their render logic (modeChanged) and achieve a better
coordinated user experience.

Rich

                                                                           
 From:  Howard Weingram <weingram at tibco.com>                               
                                                                           
 To:    Jon Ferraiolo/Menlo Park/IBM at IBMUS                                 
                                                                           
 Cc:    "gadgets at openajax.org" <gadgets at openajax.org>, Rich                
        Thompson/Watson/IBM at IBMUS                                          
                                                                           
 Date:  04/14/2009 12:53 PM                                                
                                                                           
 Subjec Re: [OpenAjaxGadgets] Request a widget mode                        
 t:                                                                        
                                                                           






+1 to getMode().

Rich's suggestion needs more discussion before I can agree to it.
Coordination of startup activities is a tricky area, and the approach that
Rich proposes does not really resolve most of the issues. Also, it is not
clear what the oldMode would be (the mode before the mode change).

Regards,
Howard


On 4/14/09 9:02 AM, "Jon Ferraiolo" <jferrai at us.ibm.com> wrote:

>
> I propose that this issue is considered resolved. If anyone objects,
please
> speak up.
>
> Here is a summary of the resolution:
> * We will add a getMode() API (which Howard has already added)
> * At widget load time, the mashup applications must send an onModeChanged
> event to notify the widget about its initial mode, following Rich's
> processing model description (I put a red-colored reminder in the Widgets
> API chapter about this)
>
> Jon
>
>
>
>
>              Howard Weingram
>              <weingram at tibco.c
>              om>
To
>              Sent by:                  Rich Thompson/Watson/IBM at IBMUS,
>              gadgets-bounces at o         "gadgets at openajax.org"
>              penajax.org               <gadgets at openajax.org>
>
cc
>
>              04/13/2009 05:47
Subject
>              PM                        Re: [OpenAjaxGadgets] Request a
>                                        widget mode
>
>
>
>
>
>
>
>
>
>
> Hi Rich.
>
>
> getMode()
>
> I tentatively added getMode() to the API wiki page and the oawidget.js
> JavaScript interface file in SVN. It simply makes sense.
>
>
http://www.openajax.org/member/wiki/OpenAjax_Metadata_1.0_Specification_Widg

>
> et_APIs#OpenAjax.widget.WidgetAdapter.prototype.getMode
>
>
> Startup Coordination
>
> What mode are your widgets in before the modeChanged event?
>
> Regards,
> Howard
>
> On 4/13/09 5:45 AM, "Rich Thompson" <richt2 at us.ibm.com> wrote:
>
>> We have had a number of use cases come to light recently where the
>> preferred user experience is achieved by the following loading sequence:
>>
>> 1. onLoad -> informs the widget to initialize itself
>> 2. any and all queued events are delivered to the widget (could have
been
>> sourced by the container or other widgets)
>> 3. onModeChanged -> widget renders itself
>>
>> This keeps the screen from going through a visual state where all of the
>> widgets appear uncoordinated followed by an immediate shift into a
>> coordinated state.
>>
>> That is a bit of an aside (though related) to the original thread, but I
>> would prefer a getMode() over having both the container and the widget
>> remember the current mode.
>>
>> Rich Thompson
>>
>>
>>
>>
>> From:
>> Howard Weingram <weingram at tibco.com>
>> To:
>> Jon Ferraiolo/Menlo Park/IBM at IBMUS
>> Cc:
>> "gadgets at openajax.org" <gadgets at openajax.org>
>> Date:
>> 04/10/2009 03:58 PM
>> Subject:
>> Re: [OpenAjaxGadgets] Request a widget mode
>>
>>
>>
>> Hi, Jon.
>>
>> Thanks for the comment.
>>
>> There is no onModeChanged at the time of the widget constructor or at
the
>> time of onLoad, when the widget is first rendering. A mode change may
>> occur
>> later, but it may be much later.
>>
>> Unless onLoad must always be followed immediately by modeChanged (which
> is
>> a
>> poor approach), I'll add getMode().
>>
>> Regards,
>> Howard
>>
>>
>> On 4/10/09 12:00 PM, "Jon Ferraiolo" <jferrai at us.ibm.com> wrote:
>>
>>>
>>> I'm OK with adding getMode(), but I'll point out that a widget has
>> enough
>>> information now to figure out what mode it's in due to the
onModeChanged
>>> event. But it would be convenient to have getMode() so that the widget
>>> wouldn't have to store away some sort of _mode private variable.
>>>
>>> Jon
>>>
>>>
>>>
>>>
>>>
>>>              Howard Weingram
>>>              <weingram at tibco.c
>>>              om> To
>>>                                        Howard Weingram
>>>              04/10/2009 11:32          <weingram at tibco.com>, Jon
>>>              AM                        Ferraiolo/Menlo Park/IBM at IBMUS
>>> cc
>>>                                        "gadgets at openajax.org"
>>>                                        <gadgets at openajax.org>
>>> Subject
>>>                                        Re: [OpenAjaxGadgets] Request a
>>>                                        widget mode
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> (Specifically because widget.xml allows the same content to be used for
>>> multiple modes; so how does such a widget know its mode when 1st
>> rendered?)
>>>
>>> Regards,
>>> Howard
>>>
>>>
>>> On 4/10/09 9:42 AM, "Howard Weingram" <weingram at tibco.com> wrote:
>>>
>>>> Do we need a function:
>>>>
>>>>     getMode()
>>>>
>>>> ?
>>>>
>>>> Regards,
>>>> Howard
>>>>
>>>>
>>>> On 4/10/09 7:31 AM, "Jon Ferraiolo" <jferrai at us.ibm.com> wrote:
>>>>
>>>>>
>>>>> +1
>>>>>
>>>>> Jon
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>              Howard Weingram
>>>>>              <weingram at tibco.c
>>>>>              om>
>>> To
>>>>>              Sent by:                  "gadgets at openajax.org"
>>>>>              gadgets-bounces at o         <gadgets at openajax.org>
>>>>>              penajax.org
>>> cc
>>>>>
>>>>>
>>> Subject
>>>>>              04/09/2009 06:31          [OpenAjaxGadgets] Request a
>>> widget
>>>>>              PM                        mode
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I would like to add a function that allows a widget to request
>>> transition
>>>>> to
>>>>> a different mode. The only indication of success would be a
>> modeChanged
>>>>> event delivered to the widget at some future time.
>>>>>
>>>>>     /**
>>>>>      * @param {String} newMode
>>>>>      *      The name of the mode to which the widget is
>>>>>      *      requesting transition
>>>>>      */
>>>>>     OpenAjax.widget.Adapter.prototype.requestMode(newMode) {}
>>>>>
>>>>>
>>>>> Use Case
>>>>>
>>>>> For example, a Help mode screen may contain a button that sends the
>>> widget
>>>>> back to View mode. This button is INSIDE the widget rather than
>> outside
>>> in
>>>>> the container. This could simply transition the widget, but then any
>>>>> container buttons would be out of sync because the container does not
>>> know
>>>>> about the change.
>>>>>
>>>>> With the requestMode, the button would not actually switch modes; it
>>> would
>>>>> call requestMode('view') and this would tell the container to switch
>> the
>>>>> mode.
>>>>>
>>>>>
>>>>> Compatibility with Other Standards
>>>>>
>>>>> This behavior would be comparable to that of javax.portlet, which
>>> specifies
>>>>> that a portlet can "programmatically change [its] portlet mode when
>>>>> processing an action request."
>>>>>
>>>>> In other words, in the portlet world, there is a standard way for a
>>> portlet
>>>>> to request that the portlet container execute a mode change.
>>>>>
>>>>> The portlet spec allows the portlet container to ignore or override
>> the
>>>>> mode-change request. It is only a request.
>>>>>
>>>>>
>>>>> Regards,
>>>>> Howard
>>>>>
>>>>> --
>>>>> Howard Weingram      650.846.1000
>>>>> Principal Architect  TIBCO Software Inc.
>>>>>
>>>>> TIBCO PageBus(TM) delivers ultra-lightweight
>>>>> publish-subscribe messaging for mash-ups.
>>>>> Learn more at http://www.pagebus.org.
>>>>>
>>>>> _______________________________________________
>>>>> gadgets mailing list
>>>>> gadgets at openajax.org
>>>>> http://openajax.org/mailman/listinfo/gadgets
>>>>
>>>>
>>>>
>>>> --
>>>> Howard Weingram      650.846.1000
>>>> Principal Architect  TIBCO Software Inc.
>>>>
>>>> TIBCO PageBus(TM) delivers ultra-lightweight
>>>> publish-subscribe messaging for mash-ups.
>>>> Learn more at http://www.pagebus.org.
>>>>
>>>> _______________________________________________
>>>> gadgets mailing list
>>>> gadgets at openajax.org
>>>> http://openajax.org/mailman/listinfo/gadgets
>>>
>>>
>>>
>>> --
>>> Howard Weingram      650.846.1000
>>> Principal Architect  TIBCO Software Inc.
>>>
>>> TIBCO PageBus(TM) delivers ultra-lightweight
>>> publish-subscribe messaging for mash-ups.
>>> Learn more at http://www.pagebus.org.
>>>
>>
>>
>>
>> --
>> Howard Weingram      650.846.1000
>> Principal Architect  TIBCO Software Inc.
>>
>> TIBCO PageBus(TM) delivers ultra-lightweight
>> publish-subscribe messaging for mash-ups.
>> Learn more at http://www.pagebus.org.
>>
>> _______________________________________________
>> gadgets mailing list
>> gadgets at openajax.org
>> http://openajax.org/mailman/listinfo/gadgets
>>
>>
>> _______________________________________________
>> gadgets mailing list
>> gadgets at openajax.org
>> http://openajax.org/mailman/listinfo/gadgets
>
>
>
> --
> Howard Weingram      650.846.1000
> Principal Architect  TIBCO Software Inc.
>
> TIBCO PageBus(TM) delivers ultra-lightweight
> publish-subscribe messaging for mash-ups.
> Learn more at http://www.pagebus.org.
>
> _______________________________________________
> gadgets mailing list
> gadgets at openajax.org
> http://openajax.org/mailman/listinfo/gadgets



--
Howard Weingram      650.846.1000
Principal Architect  TIBCO Software Inc.

TIBCO PageBus(TM) delivers ultra-lightweight
publish-subscribe messaging for mash-ups.
Learn more at http://www.pagebus.org.


_______________________________________________
gadgets mailing list
gadgets at openajax.org
http://openajax.org/mailman/listinfo/gadgets
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/gadgets/attachments/20090415/9f215036/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
Url : http://openajax.org/pipermail/gadgets/attachments/20090415/9f215036/attachment-0003.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic24653.gif
Type: image/gif
Size: 1255 bytes
Desc: not available
Url : http://openajax.org/pipermail/gadgets/attachments/20090415/9f215036/attachment-0004.gif 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
Url : http://openajax.org/pipermail/gadgets/attachments/20090415/9f215036/attachment-0005.gif 


More information about the gadgets mailing list