[OpenAjaxGadgets] Request a widget mode

Howard Weingram weingram at tibco.com
Tue Apr 14 09:52:05 PDT 2009


+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



More information about the gadgets mailing list