That makes sense for the hard-coded/constant configuration pieces.

However, the missing piece is the support for page-specific or even
app-specific agent settings.  I don't want to add new behavior to an agent
with the risk of breaking applications or pages that are expecting a
different behavior.

For example in the case of the viewport configuration, only pages that were
specifically designed for a device-width viewport should get it; other pages
that weren't specifically designed for a device-width size could end up
getting truncated undesirably.  I suppose f:attribute tags could be added
inside of tr:document for these agent-specific configurations but that's not
much different or better than trh:meta.

-Matt

On Mon, Oct 4, 2010 at 2:39 PM, Blake Sullivan <blake.sulli...@oracle.com>wrote:

>  They worked mostly like the Agents in Trinidad do, since that's where the
> Trinidad Agents come from.  I think that in this case, we actually had
> per-agent DocumentRenderer subclasses to handle agents that needed to output
> specific content.  However, at least for XHTML content, I think we either
> want to delegate the optional rendering of this content directly to the
> agent instance from the document renderer, or we want the Agent to cough up
> the name/value pairs for the DocumentRenderer to output.
>
> -- Blake Sullivan
>
>
>
> On 10/4/10 12:17 PM, Matt Cooper wrote:
>
> I'd like to learn more about configuring Agents in UIX, is there any good
> documentation that you would recommend?  (My quick searches for information
> about UIX or Trinidad Agent configuration has come up empty.)
>
> Thanks,
> Matt
>
> On Mon, Oct 4, 2010 at 12:43 PM, Blake Sullivan <blake.sulli...@oracle.com
> > wrote:
>
>>  Trying again, since I got an error from the mail server.
>>
>> -- Blake
>>
>> On 10/4/10 11:25 AM, Blake Sullivan wrote:
>>
>> The document renderer should be delegating to the Agent implementation.
>> This is essentially what happened in UIX, which is where the idea of the
>> metacontainer facet came from (in fact as part of handling exactly this
>> problem, outputting meta tags for mobile devices, in that case for Palm)
>>
>> -- Blake Sullivan
>>
>>
>>
>> On 10/4/10 9:41 AM, Matt Cooper wrote:
>>
>> Hi Blake,
>>
>> How would you recommend exposing the configuration of the viewport
>> metadata since it is agent-specific to iOS, Android, and Windows Mobile 7
>> agents?
>>
>> Thanks,
>> Matt
>>
>> On Mon, Oct 4, 2010 at 10:16 AM, Blake Sullivan <
>> blake.sulli...@oracle.com> wrote:
>>
>>>  I'm not sure that I'm a fan of this approach.  Actually, I'm not a fan
>>> at all.
>>>
>>> 1) Our first choice should be for any agent-specific meta attributes to
>>> be generated by the document renderer
>>> 2) Any standard attributes that happen to be rendered as meta attributes
>>> should be exposed as document attributes
>>> 3) Support for weird meta attributes should be tag children of the
>>> document tag and should not require the use of a tr:group.
>>>
>>> -- Blake Sullivan
>>>
>>>
>>>
>>>
>>> On 9/29/10 4:30 PM, Matt Cooper (JIRA) wrote:
>>>
>>>> Ability to easily create a meta tag
>>>> -----------------------------------
>>>>
>>>>                  Key: TRINIDAD-1930
>>>>                  URL:
>>>> https://issues.apache.org/jira/browse/TRINIDAD-1930
>>>>              Project: MyFaces Trinidad
>>>>           Issue Type: Improvement
>>>>           Components: Components
>>>>     Affects Versions: 1.2.14-core ,  2.0.0.2-core
>>>>             Reporter: Matt Cooper
>>>>             Assignee: Matt Cooper
>>>>
>>>>
>>>> Ability to easily create a meta tag (e.g.
>>>> http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safarihtmlref/articles/MetaTags.htmlor
>>>> http://www.webmarketingnow.com/tips/meta-tags-uncovered.html ) via a
>>>> new trh:meta tag.
>>>>
>>>> Currently it is quite tedious to create a meta tag out of a component:
>>>>
>>>> <tr:document ...>
>>>>   <f:facet name="metaContainer">
>>>>     <tr:group id="metaContainer">
>>>>       <tr:outputText escape="false"
>>>>                      value='&lt;meta name="viewport"
>>>> content="width=device-width">'
>>>>                      id="metaTag1"/>
>>>>       <tr:outputText escape="false"
>>>>                      value='&lt;meta name="apple-mobile-web-app-capable"
>>>> content="yes">'
>>>>                      id="metaTag2"/>
>>>>       <tr:outputText escape="false"
>>>>                      value='&lt;meta http-equiv="refresh"
>>>> content="2;url=./test/index.jspx">'
>>>>                      id="metaTag3"/>
>>>>     </tr:group>
>>>>   </f:facet>
>>>> </tr:document>
>>>>
>>>> It would be much better if we had a trh:meta component that looked like
>>>> this:
>>>>
>>>> <tr:document ...>
>>>>   <f:facet name="metaContainer">
>>>>     <tr:group id="metaContainer">
>>>>       <trh:meta name="viewport" content="width=device-width"/>
>>>>       <trh:meta name="apple-mobile-web-app-capable" content="yes"/>
>>>>       <trh:meta name="refresh" nameType="http-equiv"
>>>> content="2;url=./test/index.jspx"/>
>>>>     </tr:group>
>>>>   </f:facet>
>>>> </tr:document>
>>>>
>>>> So I would like to see a new trh:meta component that has an API like
>>>> this:
>>>>
>>>> Tag name:<trh:meta>
>>>> UIComponent class: org.apache.myfaces.trinidad.component.core.CoreMeta
>>>> Component type: org.apache.myfaces.trinidad.CoreMeta
>>>> The meta component generates an HTML meta tag and is intended to be used
>>>> inside either the trh:head tag or the document component's metaContainer
>>>> facet.
>>>>
>>>> Events
>>>> Type    Phases  Description
>>>> org.apache.myfaces.trinidad.event.AttributeChangeEvent  Invoke
>>>> Application, Apply Request Values        Event delivered to describe an
>>>> attribute change. Attribute change events are not delivered for any
>>>> programmatic change to a property. They are only delivered when a renderer
>>>> changes a property without the application's specific request. An example 
>>>> of
>>>> an attribute change events might include the width of a column that
>>>> supported client-side resizing.
>>>>
>>>> Attributes
>>>> Name    Type    Supports EL?    Description
>>>> attributeChangeListener         javax.el.MethodExpression       Only EL
>>>>         a method reference to an attribute change listener. Attribute 
>>>> change
>>>> events are not delivered for any programmatic change to a property. They 
>>>> are
>>>> only delivered when a renderer changes a property without the application's
>>>> specific request. An example of an attribute change events might include 
>>>> the
>>>> width of a column that supported client-side resizing.
>>>> binding         org.apache.myfaces.trinidad.component.core.CoreMeta
>>>> Only EL         an EL reference that will store the component instance on a
>>>> bean. This can be used to give programmatic access to a component from a
>>>> backing bean, or to move creation of the component to a backing bean.
>>>> id      String  No      the identifier for the component. The identifier
>>>> must follow a subset of the syntax allowed in HTML:
>>>>
>>>>     * Must not be a zero-length String.
>>>>     * First character must be an ASCII letter (A-Za-z) or an underscore
>>>> ('_').
>>>>     * Subsequent characters must be an ASCII letter or digit
>>>> (A-Za-z0-9), an underscore ('_'), or a dash ('-').
>>>>
>>>> rendered        boolean         Yes     whether the component is
>>>> rendered. When set to false, no output will be delivered for this component
>>>> (the component will not in any way be rendered, and cannot be made visible
>>>> on the client).
>>>> name    String  Yes     the name or http-equiv attribute of the meta
>>>> attribute (see nameType)
>>>> nameType        String  Yes     "name" or "http-equiv" indicating which
>>>> kind of name attribute is desired ("name" is the most common attribute but
>>>> some older meta tags need "http-equiv")
>>>> content         String  Yes     the content of the meta attribute
>>>>
>>>>
>>>
>>
>>
>>
>
>

Reply via email to