[OpenAjaxGadgets] Request a widget mode

Rich Thompson richt2 at us.ibm.com
Wed Apr 15 13:00:02 PDT 2009


That is one of the down sides of having it be undefined (null might even 
be preferable). 

The down side of using "view" is that newMode == oldMode.

Rich 



From:
Jon Ferraiolo/Menlo Park/IBM
To:
Rich Thompson/Watson/IBM at IBMUS
Cc:
"gadgets at openajax.org" <gadgets at openajax.org>
Date:
04/15/2009 10:19 AM
Subject:
Re: [OpenAjaxGadgets] Request a widget mode


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/IBM at IBMUS 
Sent by: gadgets-bounces at openajax.org
04/15/2009 06:16 AM

To
"gadgets at openajax.org" <gadgets at openajax.org>
cc

Subject
Re: [OpenAjaxGadgets] Request a 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 
Subject: 
Re: [OpenAjaxGadgets] Request a widget mode




+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/5eb1f5b6/attachment-0001.html 


More information about the gadgets mailing list