You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by bu...@apache.org on 2013/03/31 21:53:56 UTC

svn commit: r856778 - in /websites/staging/deltaspike/trunk/content: ./ deltaspike/jsf.html

Author: buildbot
Date: Sun Mar 31 19:53:55 2013
New Revision: 856778

Log:
Staging update by buildbot for deltaspike

Modified:
    websites/staging/deltaspike/trunk/content/   (props changed)
    websites/staging/deltaspike/trunk/content/deltaspike/jsf.html

Propchange: websites/staging/deltaspike/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sun Mar 31 19:53:55 2013
@@ -1 +1 @@
-1462975
+1463038

Modified: websites/staging/deltaspike/trunk/content/deltaspike/jsf.html
==============================================================================
--- websites/staging/deltaspike/trunk/content/deltaspike/jsf.html (original)
+++ websites/staging/deltaspike/trunk/content/deltaspike/jsf.html Sun Mar 31 19:53:55 2013
@@ -483,9 +483,52 @@ Furthermore, it's also possible to use i
 
 <p>However, in case of JSF you have to ensure that you are at a valid point in the JSF request-lifecycle for a navigation, because invocation gets transformed to a std. (implicit) JSF navigation.</p>
 <h3 id="using-matches">Using @Matches</h3>
-<p>[TODO]</p>
+<p>This annotation is currently not integrated.</p>
 <h3 id="using-viewconfigresolver">Using ViewConfigResolver</h3>
-<p>[TODO]</p>
+<p>If you would like to query view-meta-data yourself (for whatever reason), you can do that with <code>ViewConfigResolver</code>.</p>
+<div class="codehilite"><pre><span class="nd">@RequestScoped</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">ViewConfigApiDemoBean</span>
+<span class="o">{</span>
+    <span class="nd">@Inject</span>
+    <span class="kd">private</span> <span class="n">ViewConfigResolver</span> <span class="n">viewConfigResolver</span><span class="o">;</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getViewId</span><span class="o">(</span><span class="n">Class</span><span class="o">&lt;?</span> <span class="kd">extends</span> <span class="n">ViewConfig</span><span class="o">&gt;</span> <span class="n">viewConfigClass</span><span class="o">)</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">viewConfigResolver</span><span class="o">.</span><span class="na">getViewConfigDescriptor</span><span class="o">(</span><span class="n">viewConfigClass</span><span class="o">).</span><span class="na">getViewId</span><span class="o">();</span> <span class="c1">//or #toString</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">getPath</span><span class="o">(</span><span class="n">Class</span> <span class="n">pathConfigClass</span><span class="o">)</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">viewConfigResolver</span><span class="o">.</span><span class="na">getConfigDescriptor</span><span class="o">(</span><span class="n">pathConfigClass</span><span class="o">).</span><span class="na">toString</span><span class="o">();</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">ConfigDescriptor</span><span class="o">&lt;?&gt;&gt;</span> <span class="n">getAllFolderDescriptors</span><span class="o">()</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">viewConfigResolver</span><span class="o">.</span><span class="na">getConfigDescriptors</span><span class="o">();</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">ViewConfigDescriptor</span><span class="o">&gt;</span> <span class="n">getAllPageDescriptors</span><span class="o">()</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">viewConfigResolver</span><span class="o">.</span><span class="na">getViewConfigDescriptors</span><span class="o">();</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">ViewConfigDescriptor</span> <span class="nf">getCurrentViewConfig</span><span class="o">()</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">viewConfigResolver</span><span class="o">.</span><span class="na">getViewConfigDescriptor</span><span class="o">(</span><span class="n">FacesContext</span><span class="o">.</span><span class="na">getCurrentInstance</span><span class="o">().</span><span class="na">getViewRoot</span><span class="o">().</span><span class="na">getViewId</span><span class="o">());</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">Class</span><span class="o">&lt;?</span> <span class="kd">extends</span> <span class="n">ViewConfig</span><span class="o">&gt;</span> <span class="n">getCurrentViewConfigClass</span><span class="o">()</span>
+    <span class="o">{</span>
+        <span class="k">return</span> <span class="n">viewConfigResolver</span><span class="o">.</span><span class="na">getViewConfigDescriptor</span><span class="o">(</span><span class="n">FacesContext</span><span class="o">.</span><span class="na">getCurrentInstance</span><span class="o">().</span><span class="na">getViewRoot</span><span class="o">().</span><span class="na">getViewId</span><span class="o">()).</span><span class="na">getConfigClass</span><span class="o">();</span>
+    <span class="o">}</span>
+    <span class="c1">//...</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<p>For folders it's optional to implement the <code>ViewConfig</code> interface, therefore you see 2 different types of API.
+<code>#getConfigDescriptor</code> as the general API and <code>#getViewConfigDescriptor</code> which is specific for pages (which have to implement the <code>ViewConfig</code> interface).</p>
+<p><strong>Besides</strong> translating a config class to the final path of the folder or page, it's possible to get the implicitly as well as explicitly configured (view-)meta-data, get and/or execute configured callbacks</p>
 <h2 id="advanced-api-usages">Advanced API usages</h2>
 <p>[TODO]</p>
 <h3 id="creating-custom-meta-data-via-viewmetadata">Creating Custom Meta-Data via @ViewMetaData</h3>