You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2014/01/28 02:49:12 UTC

svn commit: r1561922 [5/5] - in /myfaces/site/cms-site/trunk/content/wiki: ./ asf-board-reports/ commons/ commons/user-guide/ core/ core/committer-and-pmc-guide/ core/committer-and-pmc-guide/myfaces-project-management/ core/user-guide/ core/user-guide/...

Added: myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-inputfileupload-prototype.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-inputfileupload-prototype.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-inputfileupload-prototype.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-inputfileupload-prototype.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,120 @@
+Title: GSoC HTML5 inputFileUpload Prototype
+<p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>
+
+<p><span style="color:
+rgb(0,51,102);"><strong>&lt;hx:inputFileUpload&gt;</strong></span></p>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">t:inputFileUpload (I
+don't think a dependency to Tomahawk is good. So, need to rewrite that
+stuff or copy them, preferably with maven-dependency-plugin)</span></h6>
+
+<h6>Attributes:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> multiple <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> true or false(default). </p></td>
+<td><p> File upload input type supports 'multiple' attribute. With HTML5,
+browsers can upload multiple files at once. Default to false. </p></td>
+</tr>
+<tr>
+<td><p> required <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> true or false(default). </p></td>
+<td><p> Same with &lt;t:inputFileUpload&gt; 'required' except, 'required'
+attribute of HTML 'input' element is also used this time. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> styleClassOnDrag <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> This attribute will allow us to change the style of the component
+on a drag into the component. With no automatic mechanism, one can do this
+by listening dragenter events, and changing the style; and removing that
+style on dragleave respectively. Instead, we will this attribute, so the
+renderer can render Javascript and other stuff automatically for changing
+the style on drag. <br class="atl-forced-newline" /> </p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Notes:&nbsp;</h6>
+
+<ul>
+	<li>I wanted to use HTML5 Drag and Drop here, but not sure what
+else to include in the component.&nbsp;Selection of the files on DnD to
+input is done by browser. Nothing to do at the component.</li>
+	<li>Async file upload: Not sure about this feature is possible with
+HTML5 standards. So, better implementing this later.</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#file-upload-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#file-upload-state</a></li>
+	<li><a
+href="http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_inputFileUpload.html">http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_inputFileUpload.html</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd">http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/DragDrop/DataTransfer">https://developer.mozilla.org/En/DragDrop/DataTransfer</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types">https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_Operations">https://developer.mozilla.org/En/DragDrop/Drag_Operations</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">https://developer.mozilla.org/En/DragDrop/Drag_and_Drop</a></li>
+</ul>
+
+
+
+
+<h1>Usage of prototypes:</h1>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage with
+multiple and styleClassOnDrag</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputFileUpload value="#{someBean.uploadedFiles}" multiple="true"
+styleClassOnDrag="someClass" />
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="file" multiple="true"
+ondragenter="addClass(this,'someClass');"
+ondragleave="removeClass(this,'someClass')" />
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage
+multiple=false</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputFileUpload value="#{someBean.uploadedFile}" multiple="false"/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="file" multiple="false"/>
+]
+]></ac:plain-text-body></ac:macro>

Added: myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-project.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-project.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-project.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-project.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,7 @@
+Title: GSOC HTML5 project
+<p>Documentation MyFaces HTML5 project, done by Ali Ok.</p>
+
+<p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>

Added: myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototype-inputdatetime-and-validatedaterange.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototype-inputdatetime-and-validatedaterange.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototype-inputdatetime-and-validatedaterange.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototype-inputdatetime-and-validatedaterange.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,215 @@
+Title: GSoC Html5 Prototype inputDateTime and validateDateRange
+<p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>
+
+<h3>&lt;hx:inputDateTime&gt;</h3>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">h:inputText</span></h6>
+
+<h6>Attributes not present in ancestor:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> type <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> 'datetime'(default), 'date', 'time', 'month', 'week',
+'datetime-local' <br class="atl-forced-newline" /> </p></td>
+<td><p> Type of the date-time input. Type names are exactly the same with
+the html5 spec, in order to keep things more self-explained. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> suggestions&nbsp; <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> Can be comma seperated strings, array and collection of
+&quot;javax.faces.SelectItem&quot;s </p></td>
+<td><p> Static(not Ajax or smthg) suggestion values. this attribute should
+not be defined if &quot;datalist&quot; is set. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> required <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> Same with h:inputText 'required' except, 'required' attribute of
+HTML 'input' element is used this time <br class="atl-forced-newline" />
+</p></td>
+</tr>
+<tr>
+<td><p> autocomplete </p></td>
+<td><p> optional </p></td>
+<td><p> 'true' or 'false'. By default nothing will be rendered. </p></td>
+<td><p> To override owner form's autocomplete attribute for its children.
+<br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> autofocus <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> 'true' of 'false'(default) </p></td>
+<td><p> As soon as the page is loaded, allows the user to just start typing
+without having to manually focus the main control. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> datalist <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> Id of &lt;hx:datalist&gt; for suggestions mechanism. By this way,
+suggestion options(datalist) can be shared across several input elements.
+<br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> step </p></td>
+<td><p> optional </p></td>
+<td><p> String and number </p></td>
+<td><p> Used for 'datetime', 'datetime-local' and 'time' types. Defines the
+accuracy of the selectable time (in seconds if no format is defined). <br
+class="atl-forced-newline" />
+Formats can be applied with the rules at java.text.SimpleDateFormat. e.g.
+&quot;1H&quot;:one hour, &quot;10m&quot;:10 minutes, etc. <br
+class="atl-forced-newline" />
+If it is not defined, 'any' will be rendered as the attr value; thus it is
+up to browser (opera uses 1 minute by default). Can be minimum:0.01
+</p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Notes:&nbsp;</h6>
+
+<ul>
+	<li>Cannot extend hx:inputText, since this doesn't have size,
+pattern, placeholder, etc. attributes! Will extend an abstract middle
+component.</li>
+	<li>Date range to select is driven by
+&lt;fx:validateDateRange&gt;</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-and-time-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-and-time-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#month-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#month-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#week-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#week-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#time-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#time-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#local-date-and-time-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#local-date-and-time-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary</a></li>
+</ul>
+
+
+
+<h3>&lt;fx:validateDateRange&gt;</h3>
+
+<h6>Notes:&nbsp;</h6>
+
+<ul>
+	<li>This component will have the exact semantics with Trinidad's <a
+href="http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_validateDateTimeRange.html">&lt;tr:validateDateRange&gt;</a>.&nbsp;Since
+a dependency to Trinidad won't be good, I am planning this to be a copy of
+that component.</li>
+	<li>min/max attributes rendered by &lt;hx:inputDateTime&gt;'s
+renderer are driven by this validator. HTML5 allows us to set min/max dates
+that can be selected.</li>
+	<li>This validator will allow applications to validate the input on
+both server-side and client-side.</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_validateDateTimeRange.html">http://myfaces.apache.org/trinidad/trinidad-api/tagdoc/tr_validateDateTimeRange.html</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-and-time-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-and-time-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#date-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#month-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#month-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#week-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#week-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#time-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#time-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#local-date-and-time-state">http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#local-date-and-time-state</a></li>
+</ul>
+
+
+
+
+
+<h1>Usage of prototypes:</h1>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+date</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputDateTime value="#{someBean.someField}" type="date" >
+	<fx:validateDateRange min="2000-03-24" max="2010-03-24" />
+</hx:inputDateTime>
+]
+]></ac:plain-text-body></ac:macro>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="date" min="2000-03-24" max="2010-03-24" />
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage
+datetime and step</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputDateTime value="#{someBean.petBirthMoment}" type="datetime"
+step="10">
+	<fx:validateDateRange min="#{someBean.sevenYearsAgo}"
+max="#{someBean.now}" />
+</hx:inputDateTime>
+]
+]></ac:plain-text-body></ac:macro>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="datetime" value="" min="2000-03-24T12:02Z"
+max="2010-03-24T12:02Z" step="10" />
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage: type
+month with no restrictions</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputDateTime value="#{someBean.someMonth}" type="month" />
+]
+]></ac:plain-text-body></ac:macro>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="month"/>
+]
+]></ac:plain-text-body></ac:macro>

Added: myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-inputtext-and-datalist.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-inputtext-and-datalist.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-inputtext-and-datalist.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-inputtext-and-datalist.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,595 @@
+Title: GSoC Html5 Prototypes inputText and datalist
+<p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>
+
+<h3><strong>&lt;hx:inputText&gt;</strong></h3>
+
+<p>This component is an HTML5 enabled extension of standard
+&lt;h:inputText&gt; and Trinidad's &lt;tr:inputText&gt;.</p>
+
+<p>This component is able to render plain-text (types of text, search, url
+and tel), textarea and password inputs, just like &lt;tr:inputText&gt;.
+Plus new Html5 stuff is supported.</p>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">h:inputText or some
+middle-component that other input components extend</span></h6>
+
+<h6>Attributes not present in ancestor:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> text </p></td>
+<td><p> optional </p></td>
+<td><p> one of <br class="atl-forced-newline" />
+'text'(default), 'search', 'url', 'tel', 'textarea' and 'password' <br
+class="atl-forced-newline" /> </p></td>
+<td><p> Type of the input. <br class="atl-forced-newline" />
+Same rules apply for 'text', 'search', 'url' and 'tel' on browsers, except
+the new browser-side validation. see <a
+href="http://www.whatwg.org/specs/web-apps/current-work/#text-state-and-search-state">this</a>.
+<br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> required <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> true or false(default). </p></td>
+<td><p> Same with &lt;h:inputText&gt; 'required' except, 'required'
+attribute of HTML 'input' element is also used this time. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> pattern <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> Pattern to validate the typed input on browser-side and the
+server-side. This attribute should not be set and is ignored if
+&quot;type&quot; is 'textarea'. <br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> suggestions </p></td>
+<td><p> optional </p></td>
+<td><p> Comma seperated strings, array or collection of SelectItem's
+</p></td>
+<td><p> Suggestion values. This attribute should not be defined if
+&quot;datalist&quot; property is set. This property should not be set and
+is ignored if &quot;type&quot; is 'password' or 'textarea'. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> autofocus <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> boolean </p></td>
+<td><p> If true, as soon as the page is loaded, allows the user to just
+start typing without having to manually focus the main control. Defaults to
+false. <br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> placeholder <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> Hint to show on the input, when nothing is typed <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> datalist <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> Id of &lt;hx:datalist&gt; for suggestions mechanism. By this way,
+suggestion options(datalist) can be shared across several input elements.
+This attribute should not be set and is ignored if &quot;type&quot; is
+'textarea' or 'password'. <br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> cols <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> int </p></td>
+<td><p> Number of columns to set width of input element. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> rows <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> int </p></td>
+<td><p> Number of rows to set height of input element. This attribute
+should not be set and is ignored if &quot;type&quot; is not 'textarea'. If
+&quot;type&quot; is not set, and &quot;rows&quot; is set to a number that
+is greater than 1, type will be set to 'textarea' and a textarea element
+will be rendered. <br class="atl-forced-newline" /> </p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Potential Children:</h6>
+
+<ul>
+	<li>&lt;f:selectItem&gt; and &lt;f:selectItems&gt; : For
+suggestions (not applicable for 'textarea' and 'password' types)</li>
+	<li>Potential children &lt;h:inputText&gt; (including behaviors,
+validators...)</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/#text-state-and-search-state">http://www.whatwg.org/specs/web-apps/current-work/#text-state-and-search-state</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-textarea-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-textarea-element</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary</a></li>
+</ul>
+
+
+
+
+
+
+<h3><strong>&lt;hx:datalist&gt;</strong></h3>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">UIComponent</span></h6>
+
+<h6>Attributes:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> items <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> Comma seperated strings, array or collection of SelectItem's
+</p></td>
+<td><p> Suggestion values. <br class="atl-forced-newline" /> </p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Potential Children:</h6>
+
+<ul>
+	<li>&lt;f:selectItem&gt; and &lt;f:selectItems&gt; and their
+extensions.</li>
+</ul>
+
+
+<h6>Notes:</h6>
+
+<ul>
+	<li>&quot;datalist&quot; element definition from HTML5 spec: The
+datalist element represents a set of option elements that represent
+predefined options for other controls.</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#attr-input-list">http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#attr-input-list</a></li>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element</a></li>
+</ul>
+
+
+
+
+
+<h1>Usage of prototypes:</h1>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">simple
+usage</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText value="#{someBean.someField}" type="text"/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="text" value="DefaultInput" />
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using search
+type and required attribute</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText value="#{someBean.someField}" type="search" required="true"/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="search" value="DefaultInput" required="true"/>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using
+pattern attribute</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText value="#{someBean.someField}" type="text" pattern="[0-9](0-9.html)
+[A-Z]{3}" title="A part number is a digit followed by three uppercase
+letters."/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+	<input type="text" value="DefaultInput" pattern="[0-9](0-9.html)
+[A-Z]{3}" title="A part number is a digit followed by three uppercase
+letters."/>
+	<!-- Not typing the input can result a browser alert:
+	     A part number is a digit followed by three uppercase letters.
+	     You cannot complete this form until the field is correct.
+	-->
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using
+suggestions attribute with static
+text</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="text" value="#{someBean.tool}"
+suggestions="Hammer,Screwdriver"/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="text" value="" list="idOfDataList"/>
+<datalist id="idOfDataList">
+	<option value="Hammer" label="Hammer" />
+	<option value="Screwdriver" label="Screwdriver" />
+</datalist>
+
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using
+suggestions attribute</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="search" value="#{someBean.city}"
+suggestions="#{someBean.citySuggestions}"/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="search" value="1" list="idOfDataList"/>
+<datalist id="idOfDataList">
+	<option value="0" label="Istanbul" />
+	<option value="1" label="New York" />
+	<option value="2" label="Berlin" />
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using
+&lt;f:selectItem&gt; and &lt;f:selectItems&gt;
+suggestions</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="search" value="#{someBean.city}">
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItems ......./>
+	<s:selectItems ......./>		<!-- see:
+http://jsf-comp.sourceforge.net/components/easysi/index.html -->
+</hx:inputText>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="search" value="1" list="idOfGeneratedDataList"/>
+<datalist id="idOfGeneratedDataList">
+	<option value="0" label="Istanbul" />
+	<option value="1" label="New York" />
+	<option value="2" label="Berlin" />
+	<option .../>
+	<option .../>
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">mixing
+'suggestions' attribute and &lt;f:selectItem&gt; and &lt;f:selectItems&gt;
+suggestions</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="search" value="#{someBean.city}"
+suggestions="#{someBean.citySuggestions}">
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItems ......./>
+</hx:inputText>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="search" value="1" list="idOfGeneratedDataList"/>
+<datalist id="idOfGeneratedDataList">
+	<option value="0" label="SuggestionAttributeSuggestion1" />
+	<option value="1" label="SuggestionAttributeSuggestion2" />
+	<option value="2" label="F_SelectItemSuggestion1" />
+	<option .../>
+	<option .../>
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using
+&lt;hx:datalist&gt; for
+suggestions</ac:parameter><ac:plain-text-body><![CDATA[
+<!--  this example demonstrates shared suggestion list for two input
+fields. -->
+<hx:inputText id="sourceCityInput" type="text"
+value="#{transportation.sourceCity}" datalist="sharedSuggestionDatalist"/>
+<hx:inputText id="destCityInput"   type="text"
+value="#{transportation.destCity}"   datalist="sharedSuggestionDatalist"/>
+
+<hx:datalist id="sharedSuggestionDatalist"
+items="#{someBean.citySuggestions}">
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItems ......./>
+</hx:datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input id="sourceCityInput" type="text" value="0"
+list="sharedSuggestionDatalist"/>
+<input id="destCityInput"   type="text" value="0"
+list="sharedSuggestionDatalist"/>
+<datalist id="sharedSuggestionDatalist">
+	<option value="0" label="SuggestionAttributeSuggestion1" />
+	<option value="1" label="SuggestionAttributeSuggestion2" />
+	<option value="2" label="F_SelectItemSuggestion1" />
+	<option .../>
+	<option .../>
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using Ajax
+suggestions with standard
+&lt;f:ajax&gt;</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText id="sourceCityInput" type="text"
+value="#{transportation.sourceCity}" datalist="sharedSuggestionDatalist">
+	<f:ajax event="keypress" execute="@this"
+render="suggestionDatalist"/>
+</hx:inputText>
+<hx:datalist id="suggestionDatalist" items="#{someBean.citySuggestions}">
+<!-- Ajax-Dynamic part will be	#{someBean.citySuggestions} -->
+	<f:selectItem ..../>		<!-- These will be sent on response
+to ajax request anyway. -->
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItems ......./>
+</hx:datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="search" value="1" list="idOfGeneratedDataList"
+onkeypress="jsf.ajax.request(....)"/>
+<datalist id="suggestionDatalist">
+	<option value="0" label="SuggestionAttributeSuggestion1" />
+	<option value="1" label="SuggestionAttributeSuggestion2" />
+	<option value="2" label="F_SelectItemSuggestion1" />
+	<option .../>
+	<option .../>
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">using
+placeholder attribute</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="search" value="#{someBean.city}" placeHolder="Type a
+city name"/>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="search" value="1" placeholder="Type a city name"/>
+<!-- browser is expected to show 'Type a city name' when the input is
+empty. -->
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">more complex
+usage</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="text" value="#{someBean.city}"
+suggestions="#{someBean.citySuggestions}"
+	placeHolder="#{messages['typeCity']('typecity'.html)
+}" autofocus="true" pattern="#{someBean.CityNamePattern}" required="true">
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItem ..../>
+	<f:selectItems ......./>
+</hx:inputText>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="text" value="DefaultValue" list="idOfGeneratedDataList"
+	  placeholder="Type a city name" autofocus pattern="[A-Za-z ](a-za-z-.html)
+{3}" required />
+<datalist id="idOfGeneratedDataList">
+	<option value="0" label="Istanbul" />
+	<option value="1" label="New York" />
+	<option value="2" label="Berlin" />
+	<option .../>
+	<option .../>
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+textarea</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="textarea" value="#{someBean.description}"
+	placeHolder="#{messages['typeDescription']('typedescription'.html)
+}" autofocus="true" required="true" rows="3" cols="30" />
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<textarea placeholder="Type the description" autofocus="true"
+required="true" rows="3" cols="30" >
+	DefaultValue
+</textarea>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+textarea determined by no type attr, but rows
+attr</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText value="#{someBean.description}" rows="3" />
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<textarea rows="3">
+</textarea>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+password type</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:inputText type="password" value="#{someBean.password}"
+pattern="#{someBean.6DigitsAndOneUpperCaseAtTheEnd}" required="true" />
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<input type="password" value="DefaultValue" pattern="[0-9](0-9.html)
+{6}[A-Za-z]" required="true" />
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;hx:datalist&gt;</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:datalist items="#{someBean.suggestions}" /> <!-- someBean.suggestions
+is a List<SelectItem> -->
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<datalist id="idOfDataList">
+	<option value="Istanbul" label="Istanbul-Turkey" />
+	<option value="Berlin" label="Berlin-Germany" />
+	<option value="NY" label="New York-USA" />
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;hx:datalist&gt; with static
+suggestions</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:datalist items="Hammer, Screwdriver" />
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<datalist id="idOfDataList">
+	<option value="Hammer" label="Hammer" />
+	<option value="Screwdriver" label="Screwdriver" />
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter
+ac:name="title">&lt;hx:datalist&gt; with different suggestion
+cases</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:datalist items="#{someBean.suggestions}" >	<!-- someBean.suggestions
+is a List<SelectItem> -->
+	<f:selectItem .../>
+	<f:selectItems .../>
+	<s:selectItems value="#{EasysiDemo.players}" var="Player"
+itemLabel="#{Player.name}" itemValue="#{Player.no}"/>
+</hx:datalist>
+<!-- see http://jsf-comp.sourceforge.net/components/easysi/index.html for
+<s:selectItems> -->
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<datalist id="idOfDataList">
+	<option ... />
+	<option ... />
+	<option ... />
+	<option ... />
+</datalist>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>

Added: myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-video,-audio,-mediasource-and-mediasources.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-video%2C-audio%2C-mediasource-and-mediasources.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-video,-audio,-mediasource-and-mediasources.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes-video,-audio,-mediasource-and-mediasources.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,321 @@
+Title: GSoC Html5 Prototypes video, audio, mediaSource and mediaSources
+<p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>
+
+<h3><strong>&lt;hx:video&gt;</strong></h3>
+
+<h6>Extends: <span style="color: rgb(0,0,0);">UIOutput. May extend a
+abstract component with hx:audio.</span></h6>
+
+<h6>Attributes not present in ancestor:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> preload <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> one of <br class="atl-forced-newline" />
+'none', 'metadata'(default), 'auto' </p></td>
+<td><p> none: do not preload the media from the server <br
+class="atl-forced-newline" />
+metadata: fetch metadata (length, quality, etc.) (default) <br
+class="atl-forced-newline" />
+auto: load the data from the server, even if user doesn't play it <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> showControls&nbsp; <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> true(default) or false. </p></td>
+<td><p> true: browser's media controls are shown (default) <br
+class="atl-forced-newline" />
+ false: controls are not shown and page author needs one explicitly <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> loop </p></td>
+<td><p> optional </p></td>
+<td><p> true(default) or false.<br class="atl-forced-newline" /> </p></td>
+<td><p> Pattern to validate the typed input on browser-side and the
+server-side. This attribute should not be set and is ignored if
+&quot;type&quot; is 'textarea'. <br class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> poster<br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> String </p></td>
+<td><p> Url of image to show when not playing or seeking <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+<tr>
+<td><p> width <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> String </p></td>
+<td><p> Width of the video&nbsp; <br class="atl-forced-newline" />
+</p></td>
+</tr>
+<tr>
+<td><p> height <br class="atl-forced-newline" /> </p></td>
+<td><p> optional </p></td>
+<td><p> String </p></td>
+<td><p> Height of the video <br class="atl-forced-newline" /> </p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Facets:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> fallBack </p></td>
+<td><p> Content to display when HTML5 video is not supported. For example,
+page author may use a&nbsp;flash player as a fallback or display a message
+that displays Html5 video is not supported.<br class="atl-forced-newline"
+/> </p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Potential Children:</h6>
+
+<ul>
+	<li>&lt;fx:mediaSource&gt;</li>
+	<li>&lt;fx:mediaSources&gt;</li>
+</ul>
+
+
+<h6>Notes:</h6>
+
+<ul>
+	<li>New &lt;track&gt; feature is not included, since there is no
+browser support yet (impossible to test). This feature can be added when
+one browser starts supporting it.</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/#video">http://www.whatwg.org/specs/web-apps/current-work/#video</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/HTML/Element/Video">https://developer.mozilla.org/En/HTML/Element/Video</a></li>
+</ul>
+
+
+
+
+
+<h3><strong>&lt;hx:audio&gt;</strong></h3>
+
+<p>This component will be same with &lt;hx:video&gt;, except it won't have
+&quot;width&quot;, &quot;height&quot; and &quot;poster&quot;
+attributes.</p>
+
+
+
+
+<h3><strong>&lt;fx:mediaSource&gt;</strong></h3>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">UIComponent</span></h6>
+
+<h6>Attributes:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> src </p></td>
+<td><p> required </p></td>
+<td><p> EL and Literal </p></td>
+<td><p> URL of the source. </p></td>
+</tr>
+<tr>
+<td><p> contentType </p></td>
+<td><p> optional </p></td>
+<td><p> EL and Literal </p></td>
+<td><p> MIME content type of the source (ie:video/ogg). </p></td>
+</tr>
+<tr>
+<td><p> codecs </p></td>
+<td><p> optional </p></td>
+<td><p> EL and Literal </p></td>
+<td><p> Codecs of the source (ie:'avc1.64001E, mp4a.40.2'). </p></td>
+</tr>
+<tr>
+<td><p> media </p></td>
+<td><p> optional </p></td>
+<td><p> EL and Literal </p></td>
+<td><p> Just like the @media in CSS. </p></td>
+</tr>
+</tbody></table>
+
+
+<h6>Notes:</h6>
+
+<ul>
+	<li>This component can be a child of &lt;hx:video&gt; and
+&lt;hx:audio&gt;</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/HTML/Element/Source">https://developer.mozilla.org/En/HTML/Element/Source</a></li>
+</ul>
+
+
+
+
+
+
+
+<h3><strong>&lt;fx:mediaSources&gt;</strong></h3>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">UIComponent</span></h6>
+
+<h6>Attributes:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> items </p></td>
+<td><p> required </p></td>
+<td><p> EL </p></td>
+<td><p> binding of a collection which has elements of types having these
+methods:<br class="atl-forced-newline" /></p>
+<ul>
+	<li>public String getSrc()</li>
+	<li>public String getContentType()</li>
+	<li>public String getMedia()</li>
+	<li>public String getCodecs() <br class="atl-forced-newline" />
+(ie. Collection&lt;org.apache.myfaces.html5.media.MediaSourceInfo&gt;) <br
+class="atl-forced-newline" />
+'src', 'contentType', 'media' and 'codecs' are explained in
+&lt;fx:mediaSource&gt; above.</li>
+</ul>
+</td>
+</tr>
+</tbody></table>
+
+
+<h6>Notes:</h6>
+
+<ul>
+	<li>This component can be a child of &lt;hx:video&gt; and
+&lt;hx:audio&gt;</li>
+</ul>
+
+
+<h6>References:</h6>
+
+<ul>
+	<li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element">http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element</a></li>
+	<li><a
+href="https://developer.mozilla.org/En/HTML/Element/Source">https://developer.mozilla.org/En/HTML/Element/Source</a></li>
+</ul>
+
+
+
+<h1>Usage of prototypes:</h1>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage: no
+&lt;fx:mediaSource&gt;</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:video value="#{videoBean.someVideoFileURL}" preload="metadata"
+	 poster="somePosterImage.jpg"
+	 width="600px" height="300px"
+	 autoplay="true" loop="true" showControls="true" >
+  <f:facet name="fallBack">
+	 <embed player.swf ....>.....</embed>
+	 <!-- SOME FALLBACK MECHANISM TO PLAY THE FILE (FLASH may be). or
+alerting the user about HTML5 video support.  -->
+  </f:facet>
+</hx:video>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<video src="someAddress/someFile.mkv" preload="metadata" autoplay="true"
+loop="true" controls="true" poster="somePosterImage.jpg"
+	 width="600px" height="300px">
+  <embed player.swf ....>.....</embed>
+</video>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage with
+&lt;fx:mediaSource&gt;</ac:parameter><ac:plain-text-body><![CDATA[
+<hx:video preload="none" 
+	 autoplay="false" loop="false" showControls="false"
+	 poster="#{videoBean.posterImage}">
+
+  <f:facet name="fallBack">
+	 Your browser does not support HTML5 video.
+  </f:facet>
+  
+  <fx:mediaSource src="http://someaddress/someFile.ogg"
+contentType="video/ogg" codecs="avc1.42E01E" media="screen and
+(device-width: 800px)">
+  <fx:mediaSource src="http://someaddress/some3DFile.ogg"
+media="3d-glasses">
+
+  <!-- <fx:mediaSources> component, not <fx:mediaSource> -->
+  <fx:mediaSources items="#{someBean.mediaInfoList}">	   
+</hx:video>
+]
+]></ac:plain-text-body></ac:macro>
+<ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body><![CDATA[
+<video preload="none" poster="somePosterImage.jpg" controls="false"
+autoplay="false">
+  Your browser does not support HTML5 video.
+  <source src='http://someaddress/someFile.ogg' Type='video/ogg;
+codecs="avc1.42E01E"' media="screen and (device-width: 800px)" />
+  <source src='someAddress/some3Dfile.ogg' media="3d-glasses"/>
+  
+  <!-- elements below are generated with fx:mediaSources> -->
+  <source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'
+media="screen">
+  <source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'
+media="3d-glasses">
+  <source src='video.mp4' type='video/mp4; codecs="avc1.4D401E,
+mp4a.40.2"'>
+  <source src='video.mp4' type='video/mp4; codecs="avc1.64001E,
+mp4a.40.2"'>
+  <source src='video.mp4' type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'>
+</video>
+]
+]></ac:plain-text-body></ac:macro>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>

Added: myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-prototypes.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,27 @@
+Title: GSoC Html5 Prototypes
+<p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>
+
+<p>This page lists the wiki pages of component prototypes that is written
+for &quot;Html5 Support for Myfaces2&quot; Google Summer of Code
+project.</p>
+
+<p>These wiki are temporary within the GSoC period, and not publish
+quality. They are written for getting feedback from community.</p>
+
+<p><ac:link><ri:page ri:content-title="GSoC HTML5 DnD Prototypes"
+/></ac:link></p>
+
+<p><ac:link><ri:page ri:content-title="GSoC Html5 Prototype inputDateTime
+and validateDateRange" /></ac:link></p>
+
+<p><ac:link><ri:page ri:content-title="GSoC Html5 Prototypes inputText and
+datalist" /></ac:link></p>
+
+<p><ac:link><ri:page ri:content-title="GSoC HTML5 inputFileUpload
+Prototype" /></ac:link></p>
+
+<p><ac:link><ri:page ri:content-title="GSoC Html5 Prototypes video, audio,
+mediaSource and mediaSources" /></ac:link></p>

Added: myfaces/site/cms-site/trunk/content/wiki/proposals.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/proposals.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/proposals.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/proposals.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,5 @@
+Title: Proposals
+<ul>
+	<li><ac:link><ri:page ri:content-title="WindowId Proposal"
+/><ac:link-body>Window-ID for JSF 2.2</ac:link-body></ac:link></li>
+</ul>

Added: myfaces/site/cms-site/trunk/content/wiki/proposals/windowid-proposal.mdtext
URL: http://svn.apache.org/viewvc/myfaces/site/cms-site/trunk/content/wiki/proposals/windowid-proposal.mdtext?rev=1561922&view=auto
==============================================================================
--- myfaces/site/cms-site/trunk/content/wiki/proposals/windowid-proposal.mdtext (added)
+++ myfaces/site/cms-site/trunk/content/wiki/proposals/windowid-proposal.mdtext Tue Jan 28 01:49:11 2014
@@ -0,0 +1,357 @@
+Title: WindowId Proposal
+<h1>Intro</h1>
+
+<p>Leonardo proposed the APIs after a discussion with Gerhard and Mark and
+based on the experience with MyFaces CODI (which was based on the
+experience with MyFaces Orchestra).<br />
+Originally we started at <a
+href="http://wiki.apache.org/myfaces/Drafts/WindowId">http://wiki.apache.org/myfaces/Drafts/WindowId</a></p>
+
+
+<p>The purpose of the WindowId API is to explicitly establish an
+association between a client window and a UIComponent hierarchy rooted at a
+single UIViewRoot. </p>
+
+<h2>Terms</h2>
+
+<ul>
+	<li><strong>client window</strong>. A client window may be a
+browser tab, a browser window, a pop-up or a portlet.</li>
+	<li><strong>windowId</strong>. A property of the client window that
+uniquely identifies a client window within the scope of a client
+session.</li>
+</ul>
+
+
+<h2>Invariants</h2>
+
+<ul>
+	<li>The lifetime of a windowId is smaller than a session but
+greater than an individual request processing lifecycle</li>
+	<li>A window-id always is unique in the session of the user. A
+session contains multiple windowIds, but only exactly 1 window-id
+&gt;per&lt; browser tab.</li>
+	<li>A client window is always associated with exactly one
+UIViewRoot instance at a time, but it may display many different
+UIViewRoots during its lifetime.</li>
+	<li>The windowId must not be shared across browser tabs.</li>
+	<li>The windowId must not be included in the ViewState, because it
+needs to be available before the ViewState has been decoded.</li>
+	<li>The windowId must be the anchor to which the Flash is
+hitched.</li>
+</ul>
+
+
+<h3>Invariants (maybe postponed to JSF 2.3)</h3>
+<ul>
+	<li>The first request which results in a pages displayed to the
+user must work like all subsequent requests<br />
+  (e.g. the URL-mode adds the windowId to the URLs -&gt; in this mode it
+isn't allowed to show the first page without the windowId in URL of the
+address-bar, because a refresh would lead to a different URL and the state
+which was submitted e.g. via Ajax requests would be lost.)</li>
+	<li>Clients different from a Web-Browser aren't always compatible
+with redirects. If the previous point is solved via a redirct, there has to
+be a flag to prevent a redirect to keep the compatibility with such
+(automated) clients.</li>
+</ul>
+
+
+<h2>Lifecycle</h2>
+
+<p>This section explains the touch-points of the existing JSF Request
+Processing Lifecycle and the WindowId API.</p>
+
+<ul>
+	<li>When is the windowId created? Depends on the algorithm selected
+to handle the windowId.
+	<ul>
+		<li>Short answer: as soon as possible.&nbsp; At least
+before the JSF Request Processing Lifecycle starts.</li>
+		<li>In <a
+href="http://wiki.apache.org/myfaces/Drafts/WindowId">http://wiki.apache.org/myfaces/Drafts/WindowId</a>
+you can see different solutions. In the solution used in MyFaces Codi when
+the case is detected where a windowId needs to be created, the faces server
+responds to the request by sending down a special page, containing only
+JavaScript, that will ask for the same page as before, but with the
+windowId. Note that the obvious solution of a 302 redirect is not
+appropriate here because we want to give the client the responsibility to
+create the window ID.</li>
+		<li>In other solutions it is generated by the server. So,
+the api is thought with the intention to provide such details as
+implementation details just overriding Window object. Look the part on this
+wiki that says something about different modes (url-Mode,
+client-Mode).</li>
+	</ul>
+	</li>
+	<li>When is it updated?
+	<ul>
+		<li>It is updated when the application triggers the
+creation of a new window. Here it also depends on the algorithm selected to
+handle the windowId. Each strategy to handle windowId has its flaws, and
+there is no perfect solution for it, because it is a failure of the
+underlying protocol (http).</li>
+	</ul>
+	</li>
+	<li>How is it stored during the execution of the lifecycle?
+	<ul>
+		<li>Since the windowId does not change at any moment over
+the view lifetime <strong>within</strong> the <strong>same</strong> browser
+window, it can be cached in the request scope. Two views can receive the
+same windowId if and only if the views are rendered on the same browser
+window, which happens in case of any std. JSF navigation or when for
+example a GET occur in the same browser window.</li>
+	</ul>
+	</li>
+	<li>Who renders the windowId to the response, and when?
+	<ul>
+		<li>In the proposal, the ResponseStateManager should render
+the windowId in a hidden field as a <strong>fallback</strong> e.g. in case
+of URL rewriting. The windowId stored in URLs and hidden field/s have to be
+in sync. The api proposed looks just like Flash object, but one idea is use
+Window object to fix Flash scope. If there is a windowId identifier, it can
+be used for Flash object.</li>
+	</ul>
+	</li>
+</ul>
+
+
+
+<p>This proposal doesn't propose a new Scope. It just proposes an id for
+identifying a browser-tab/window.</p>
+
+<h1>Suggested APIs</h1>
+
+<h2>ExternalContext (and ExternalContextWrapper)</h2>
+
+<h3>String #getWindowId</h3>
+
+<h3>#setWindowId(String)</h3>
+
+<h3>Window #getWindow</h3>
+
+<h2>javax.faces.context.Window</h2>
+
+<h3>#calculateWindowId(FacesContext)</h3>
+
+<p>Extract the windowId from the current request</p>
+
+<h3>#createWindowId(FacesContext)</h3>
+
+<p>Creates a new Window-Id. Since it might be used e.g. for pop-ups it
+shouldn't call #setWindowId automatically.</p>
+
+<h3>Further discussions needed for</h3>
+
+<h4>#doPrePhaseActions(FacesContext)</h4>
+
+<h4>#doPostPhaseActions(FacesContext)</h4>
+
+<h4>#encodeXYZ</h4>
+
+<h2>ResponseStateManager</h2>
+
+<h3>WINDOW_ID_PARAM</h3>
+
+<p>//Hidden input field name to store the windowId for POST requests.<br />
+public static final String WINDOW_ID_PARAM =
+&quot;javax.faces.WindowId&quot;;</p>
+
+<h1>Suggested Rules</h1>
+
+<h2>Restoring the Window-Id</h2>
+
+<p>The window-id gets restored before the JSF Request-Lifecycle starts
+(e.g. directly after restoring the Flash Scope).</p>
+
+<h2>Levels (javax.faces.WINDOW_ID_MODE)</h2>
+
+<ul>
+	<li>none</li>
+	<li>url</li>
+	<li>custom</li>
+</ul>
+
+
+<h3>none-Mode</h3>
+
+<p>By default Window-Id's are deactivated to ensure backward
+compatibility.</p>
+
+<h3>url-Mode</h3>
+
+<p>That's a very simple approach which has some disadvantages. It just adds
+the Window-ID to all URLs. That works if users don't open e.g. a link in a
+new tab (it would clone a window - that isn't nice but not worse than the
+HTTP session itself). Furthermore, a &quot;drop&quot; script detects the
+&quot;open in new tab&quot; use-case and drops the current window-id and
+requests the page again with a new window-id.<br />
+There must be a per-use way to disable the inclusion of the URL in a
+link.</p>
+
+<h3>custom-Mode</h3>
+
+<p>This mode allows that a JSF implementation or RenderKit provides a
+proprietary mode which is even more optimized - e.g. using an intermediate
+page which can be stored in the local-storage of HTML5.<br />
+Values: custom:<ac:link><ri:page ri:content-title="name of the mode"
+/></ac:link> e.g.:
+&lt;param-value&gt;custom:intermediate-page&lt;/param-value&gt;</p>
+
+<h1>Open Topics</h1>
+
+<p>Also is it better to have new window-ids per request, if no js is
+available, or one window-id for all windows?</p>
+
+<h2>Concrete rules for a Request-Token</h2>
+
+
+<h2>Max. window-count</h2>
+
+
+<h2>Factory for the window</h2>
+
+
+<h2>WindowWrapper</h2>
+
+
+<h2>Window#close</h2>
+
+
+<h2>JS-API</h2>
+
+<h3>jsf.getWindowId()</h3>
+
+<p>returns the current window id of the current window/dialog.<br />
+The windowId must be present in the url otherwise a null is returned.</p>
+
+<h3>Changes in the behavior on the ajax side</h3>
+
+<p>On the ajax side the parameter javax.faces.WindowId must be passed down.
+If the parameter is stored<br />
+in a hidden field like it is proposed before then this happens
+automatically.<br />
+If not then the jsf.ajax.request must add this value before submitting the
+form, if present on the window url.</p>
+
+<h3>Under discussion, additional methods needed?</h3>
+
+<p>Any api needed for handling the open in new tab usecase, http get
+usecase, open or close windows?</p>
+
+<h2>Handling of Pop-ups and Dialogs</h2>
+
+
+<h2>Rules for automated entry points (to avoid that new windows get created
+and are around for a long time)</h2>
+
+<h1>Topics for JSF 2.3+</h1>
+
+<h2>Portlets</h2>
+
+
+<h2>Keepalive (the frequency should decrease over time to allow proper
+cleanup in case of max. window-count)</h2>
+
+
+<h2>Optional onunload hook (in some browsers it just works with a sync.
+request - and not with async. requests)</h2>
+
+<h1>Summary of the Discussion in the EG</h1>
+
+<p>1 Suggestions based on the status in CODI:<br />
+------------------------------------------------</p>
+
+<p>1.1 General Definitions regarding Window-ID<br />
+------------------------------------------------------------<br />
+a) a window-id always refers to the tab to allow a proper isolation (it
+should/can be stored in the browsers window.name)</p>
+
+<p>b) a window-id always is unique in the session of the user. A session
+contains exactly 1 window-id per browser tab.</p>
+
+<p>c) rendering multiple window-ids per browser tab is not allowed hence
+also not in portlet mode.(because the window-id is stored in the browsers
+window.name)</p>
+
+
+<p>1.2 Modes and special cases<br />
+---------------------------------------<br />
+1) no mode: no window-id is generated - legacy mode</p>
+
+<p>2) url-Mode: the window-id is stored in the browser url<br />
+hidden fields are shadowed into the forms also to keep the window-id
+support for post requests.<br />
+windowId parameters are added to http get links.<br />
+Server side the windowId needs to be processed over the sent windowId
+parameters.</p>
+
+<p>This is even the same for Portlet cases since the window-id has<br />
+a referential pattern of 1:n to the scopes<br />
+The same goes for sub scopes.</p>
+
+<p>If a new tab is opened a Javascript script detects that use case and
+basically re-renders the page with a new window-id dedicated to the tab.
+<br />
+How that is done is up to the implementation. The basic implementation is
+to check for an empty or  non-matching window.name and then redirect the
+page without a window-id in the url to force a new one.</p>
+
+<p>3) custom-Mode:<br />
+Allows to use a custom mode provided by the JSF implementation or a custom
+RenderKit.</p>
+
+<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
+Value: custom:[name of the mode](name-of-the-mode.html)
+
+e.g.:
+<param-value>custom:intermediate-page</param-value>
+]
+]></ac:plain-text-body></ac:macro>
+
+<p>TBD</p>
+
+<p>5) Bookmark case or a href &hellip; target=_new: This is handled in CODI
+by opening a new window-id or recycling the old one (bookmarking case with
+same windowid in the bookmark as the existing one)</p>
+
+
+<p>2. Status quo of the spec discussion compared to CODI:<br />
+---------------------------------------------------------------------------</p>
+
+<p>a) URL mode: checked is discussed.</p>
+
+<p>b) overriding the URL not yet fully discussed: since it opens another
+can of worms (f)</p>
+
+<p>c) synchronizing the URL with hidden fields: checked is discussed due to
+having hidden fields holding javay.faces.windowId</p>
+
+<p>d) Open in new tab script: soon under discussion</p>
+
+<p>e) hidden field only mode: Breaks e.g. the get requests and browser
+refresh, therefore not doable</p>
+
+<p>f) jsf.getWindowId can be simplified (is now in the proposal) if (b) is
+omitted or postponed, otherwise it needs to be investigated, if the current
+implementation can hold. The entire code was programmed under the
+assumption that we have a window-id per Portlet use case, which cannot hold
+for (d) see also (g)</p>
+
+<p>g) Ajax protocol ViewRoot either redundant, or in case of (b), cannot
+work on ViewRoot level<br />
+because single forms can if override is enabled be updated with different
+ViewRoots.<br />
+(my mistake i was under the wrong assumption between window-id and scope
+and because of (g) )</p>
+
+<p>h) window-id per Portlet, is there a use case for that one? Especially
+since it breaks the new<br />
+tab detection jsf.getWindowId can hold for (g)</p>
+
+<p>i) server side part of the window-id handling, where to be rendered,
+under discussion</p>
+
+<p>h) open point: what to do with the a hrefs and pages where you
+don&acute;t want to have a window id. Should a link to a different
+window-id be possible, how can you turn it off/on.</p>