Part 2 - Resource catalog, customization and personalization in Oracle WebCenter application
Part 2 - Resource catalog, customization and personalization in Oracle
WebCenter application describes steps for configuring default resource catalog, creating and adding your own resource catalogs, how to use of PortalBundle.properties to define strings used in resource catalog
23. Default Resource Catalog
Run application. Login as weblogic/welcome1 or administrator1/welcome1
Note Edit link. This is enabled only for users in Administrators group.
It is disabled for Guest. Where is this Edit link in jspx code? Well, it is pe:changeModeLink
Click Edit, Add Content
Pop up displays as shown. This is Default Resource Catalog
Figure 35
Default Resource Catalog contents are displayed from default-catalog.xml
Figure 36
24. Adding entries to Default Resource Catalog
If it is required to add an out-of-the-box task flow, e.g. RSS Viewer Task
flow, to Default Resource Catalog, View > Resource Palette > My Catalogs
> WebCenter Portal – Services Catalog > Task Flows. Right click RSS
Viewer, click Show Catalog Reference
Figure 37
Select xml text and press Ctrl + C to copy selected text
Figure 38
Go to Source view of default-catalog.xml.
Paste this copied text between
<contents
xmlns="http://xmlns.oracle.com/adf/rcs/catalog"></catalog>
tag
<resource
id="RSSViewerTaskFlow" name="RSS Viewer Task Flow"
repository="application.classpath"
path="rss-service-view.jar/ADF_TaskFlow/oracle+webcenter+rssviewer+view+jsf+fragments+RSSViewerTaskFlow.xml#RSSViewerTaskFlow"/>
name="RSS
Viewer Task Flow" attribute is added within resource tag
Figure 39
25. Adding your own Resource Catalog (example with out-of-the-box task flow)
1.
Right click catalogs under Portal > Web
Content > oracle > webcenter > portalapp > catalogs. Select New
Figure 40
2.
Under Categories, expand Web Tier, select
Portal, select Application Resource catalog
Figure 41
3.
Click OK. Provide name e.g. rssViewer-catalog.xml
Figure 42
4.
Paste
Resource Declaration text from Resource Catalog Reference in between <contents
xmlns="http://xmlns.oracle.com/adf/rcs/catalog"></contents>
tag (refer Figure) in Source view of rssViewer-catalog.xml
<contents
xmlns="http://xmlns.oracle.com/adf/rcs/catalog"></catalog>
tag
<resource
id="RSSViewerTaskFlow" name="RSS Viewer Task Flow"
repository="application.classpath"
path="rss-service-view.jar/ADF_TaskFlow/oracle+webcenter+rssviewer+view+jsf+fragments+RSSViewerTaskFlow.xml#RSSViewerTaskFlow"/>
name="RSS Viewer Task
Flow" attribute is added within resource tag
5.
In RSSNewsFeeds.jspx, add property catalog="/oracle/webcenter/portalapp/catalogs/rssViewer-catalog.xml"
to pe:pageCustomizable
tag. Click arrow towards end of Page Customizable – Property Inspector >
Advanced > Catalog to display Property Help of Catalog. This displays path
to catalogs folder. Refer below image
Read text as hint
to provide path to custom Resource Catalog
/oracle/webcenter/portalapp/catalogs/SampleCatalog.xml for path, in below image
Figure 43
Contents of rssVierwer-catalog.xml
appears as below at runtime, on clicking Edit, Add Content
Figure 44
Interesting fact
This has fallback mechanism. If you change catalog property of pe:pageCustomizable to catalog="/oracle/webcenter/portalapp/catalogs/rssViewer-catalog1.xml"
– there is no such file. Hence at runtime, application fails to find rssViewer-catalog1.xml.
So it loads Default Resource Catalog. Try it.
So always add your Resource Declaration text from Resource Catalog Reference to
contents tag of default-catalog.xml, besides adding your task flows there
as well
26. Adding your own Resource Catalog (example with ADF component viz. af:goLink i.e. Hyperlink)
1.
Open default-catalog.xml in Design view. Expand Web
Development node as shown. Select Hyperlink (or any component you wish to add
to your Resource Catalog). Selecting Hyperlink will help you locate text to be
copied from Source view, as that text would be selected in Source view as well
Figure 45
2.
Add new Resource Catalog, say externalLinks-catalog.xml
3.
Paste below text between <contents
xmlns="http://xmlns.oracle.com/adf/rcs/catalog"></contents>
tag
<component id="link" visible="#{true}"
factoryClass="oracle.adf.rc.component.XmlComponentFactory">
<attributes>
<attribute attributeId="Title" value="LINK"
isKey="true"/>
<attribute attributeId="Description"
value="LINK.DESCRIPTION"
isKey="true"/>
<attribute attributeId="Subject"
value="LINK.KEYWORDS" isKey="true"/>
<attribute attributeId="IconURI"
value="/adf/webcenter/weblinks_qualifier.png"/>
</attributes>
<parameters>
<parameter id="xml">
<![CDATA[<cust:showDetailFrame
xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"
id="#" background="light"
contentStyle="background-color:transparent;"
displayHeader="false" showMinimizeAction="none"
showResizer="never" stretchContent="false">
<f:attribute
xmlns:f="http://java.sun.com/jsf/core"
name="sdf_selection_rule"
value="sdf_for_edit_mode_only"/>
<af:goLink id="#"
text="#{componentExtensionBundle.LINK_TEXT}" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"/>
</cust:showDetailFrame>
]]>
</parameter>
</parameters>
</component>
4.
Switch to Design view
Figure 46
5.
Open PortalBundle.properties
Figure 47
6.
In Design view of externalLinks-catalog.xml, select LINK
Figure 48
7.
You can add Title, Description from Resource
Bundle. Add below lines to PortalBundle.properties
and save it
TITLE=Add link
DESCRIPTION=Click + Add to
add link
8.
Click magnifying glass icon next to Title to
display Browse Classes. Pop up opens up as shown below
Figure 49
9.
Delete text in Display Value: (LINK is pre
populated in Display Value when this pop up opens up) to display Keys that were
added in properties file, in Matching Text Resources. Select TITLE, click
Select. Similarly add Description. If you do not wish to use Resource Bundle,
select Literal String from dropdown under Value Type column as shown below and
type your own text in Display Value for particular row under Name column
Figure 50
externalLinks-catalog.xml gets
modified as below
<component id="link"
visible="#{true}"
factoryClass="oracle.adf.rc.component.XmlComponentFactory">
<attributes>
<attribute
attributeId="Title" value="TITLE" isKey="true"
resourceBundle="portal.PortalBundle"/>
<attribute
attributeId="Description" value="DESCRIPTION"
isKey="true"
resourceBundle="portal.PortalBundle"/>
<attribute
attributeId="Subject" value="" isKey="false"/>
<attribute
attributeId="IconURI"
value="/adf/webcenter/weblinks_qualifier.png"
isKey="false"/>
</attributes>
<parameters>
<parameter id="xml">
<![CDATA[<cust:showDetailFrame
xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"
id="#" background="light"
contentStyle="background-color:transparent;"
displayHeader="false" showMinimizeAction="none"
showResizer="never" stretchContent="false">
<f:attribute
xmlns:f="http://java.sun.com/jsf/core"
name="sdf_selection_rule"
value="sdf_for_edit_mode_only"/>
<af:goLink
id="#" text="Please enter link title here" targetFrame="_blank"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"/>
</cust:showDetailFrame>
]]>
</parameter>
</parameters>
</component>
af:goLink tag can be modified as
<af:goLink
id="#" text="Please enter link title here"
targetFrame="_blank"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"/>
Tip
To
obtain more properties that could be added to af:goLink tag, on any TestPage.jspx, drag
drop Go Link component from Component Palette, press space bar within af:goLink tag
For
e.g. in above af:goLink, I have
added text="Please
enter link title here”, targetFrame="_blank". Because
of this below is output displayed at runtime. Since rendered=”true” by
default, Show Component is checked by default
Figure 51
10.
Add new JSF Page ExternalLinks.jspx
containing below code
Important
Code is only for your reference. Avoid copying and pasting any code containing Oracle Composer components viz. Change Mode Button, Change Mode Link, Page Customizable, Layout Customizable, Panel Customizable, Show Detail Frame. Drag drop Oracle Composer components for them to function correctly
Important
Code is only for your reference. Avoid copying and pasting any code containing Oracle Composer components viz. Change Mode Button, Change Mode Link, Page Customizable, Layout Customizable, Panel Customizable, Show Detail Frame. Drag drop Oracle Composer components for them to function correctly
<?xml
version='1.0' encoding='UTF-8'?>
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:pe="http://xmlns.oracle.com/adf/pageeditor"
xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable">
<jsp:directive.page
contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document id="d1"
title="External Links">
<af:form id="f1">
<af:pageTemplate
viewId="/oracle/webcenter/portalapp/pagetemplates/pageTemplate_globe.jspx"
id="pt1">
<f:facet
name="content">
<af:panelGroupLayout
id="pgl1" layout="vertical">
<af:panelGroupLayout
id="pgl2" layout="horizontal">
<af:outputText
value="#{securityContext.userName}" id="ot1"/>
<af:spacer
width="10" height="10" id="s1"/>
<pe:changeModeLink
id="cml1"/>
</af:panelGroupLayout>
<pe:pageCustomizable
id="pageCustomizable1"
catalog="/oracle/webcenter/portalapp/catalogs/externalLinks-catalog.xml">
<f:facet
name="editor">
<pe:pageEditorPanel
id="pep1"/>
</f:facet>
<pe:layoutCustomizable
id="layoutCustomizable1"
type="oneColumn">
<cust:panelCustomizable
id="panelCustomizable1"/>
<f:facet
name="contentA">
<cust:panelCustomizable
id="panelCustomizable2"/>
</f:facet>
<f:facet
name="contentB">
<cust:panelCustomizable
id="panelCustomizable3"/>
</f:facet>
</pe:layoutCustomizable>
</pe:pageCustomizable>
</af:panelGroupLayout>
</f:facet>
</af:pageTemplate>
</af:form>
</af:document>
</f:view>
</jsp:root>
11.
Add entry of ExternalNews.jspx to pages.xml
External Links Resource Catalog appears as below at runtime, on
clicking Edit, Add Content
Figure 52
27. Personalization
To test personalization log in as guest1/welcome1. Collapse any RSS news feed. Logout
and login as guest2/welcome1. All panels would be in expanded form to guest2
28. References
http://docs.oracle.com/cd/E23943_01/webcenter.1111/e10148/jpsdg_page_editor.htm#CHDGBFHA
To run application, right click login.jspx in Application Navigator, click run. Login as weblogic/welcome1 or administrator1/welcome1 to observe customization. Login as guest1/welcome1 or guest2/welcome1 to observer personalization