ADF FACES:Creating custom component on top of adf

My UI requiement is sth like
Name : xxxxxxx
Description : xxxxxxxxx
Search : cccccc
This UI i want to create as a custom tag and use it across our project.
We need to include this utiltiy in JSP Tag libraries so that it appears in
the compoent palette.
WE have done the same thing using pure JSF and it is working fine.
But we need to leverage ADF classes.. so that we can get the same look and
feel and we simply set our proprties and renering part will come from ADF faces.
In my main component class I have written the code sth like
public void encodeChildren(FacesContext context)throws IOException {
RenderKit rk = context.getRenderKit();
CoreInputText buton = new CoreInputText();
buton.setValue("my text");
buton.setRendered(true);
rk.getRenderer("myFamily", getRendererType()).encodeBegin(context, buton);
After doing this I run my test.jsp and no output is produced.
So can you let us know the correct way for doing this.
This is a high priority requirement for US.if anybody can pls help asap..
Thanks
Ravi

Hi All,
I was able to get this code to run and wanted to share with you the corrections
================== HelloUIComp.java ==============
package view.components.msg;
import java.io.IOException;
import javax.faces.application.Application;
import javax.faces.component.UIComponentBase;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import oracle.adf.view.faces.component.core.CoreForm;
import oracle.adf.view.faces.component.core.input.CoreInputText;
import oracle.adf.view.faces.component.core.layout.CorePanelForm;
import oracle.adf.view.faces.component.core.nav.CoreCommandButton;
import oracle.adf.view.faces.component.core.output.CoreMessage;
import oracle.adf.view.faces.component.core.output.CoreMessages;
public class HelloUIComp extends UIComponentBase {
private CoreCommandButton button;
private CoreInputText intext;
private CoreInputText description;
private CorePanelForm panel;
private CoreForm form;
public static final String COMPONENT_TYPE = "com.mycompany..hello";
// This will be a self-rendering component
public static final String RENDERER_TYPE = null;
public HelloUIComp() {
FacesContext context = FacesContext.getCurrentInstance();
Application apps = context.getApplication();
UIViewRoot root = context.getViewRoot();
panel = (CorePanelForm)apps.createComponent(CorePanelForm.COMPONENT_TYPE);
panel.setId("errPanel");
panel.setLabelWidth("35%");
panel.setRows(7);
getChildren().add(panel);
form = (CoreForm)apps.createComponent(CoreForm.COMPONENT_TYPE);
form.setId("errForm");
panel.getChildren().add(form);
intext = (CoreInputText)apps.createComponent(CoreInputText.COMPONENT_TYPE);
intext.setId("name");
intext.setLabel("Name");
intext.setRendered(true);
intext.setRequired(true);
form.getChildren().add(intext);
description = (CoreInputText)apps.createComponent(CoreInputText.COMPONENT_TYPE);
description.setId("description");
description.setLabel("description");
description.setRendered(true);
description.setRequired(true);
description.setRows(3);
form.getChildren().add(1, description);
public boolean getRendersChildren() {
return true;
public void encodeChildren(FacesContext context) throws IOException {
// Encode the top most component
panel.encodeAll(context);
/* The below code can replace the encodeAll call
panel.encodeBegin(context);
if(panel.getRendersChildren()){
panel.encodeChildren(context);
panel.encodeEnd(context);
public String getFamily() {
return COMPONENT_TYPE;
==========================================================
Notice, you don't need any setters/getters for this object.
You will need the following tag file:
============= HelloUICompTag.java ========
package view.components.msg;
import javax.faces.webapp.UIComponentTag;
public class HelloUICompTag extends UIComponentTag{
public HelloUICompTag() {
public String getComponentType() {
return HelloUIComp.COMPONENT_TYPE;
public String getRendererType() {
// Self rendering components return null
return HelloUIComp.RENDERER_TYPE; // should be null
=========================================
You will need to update your faces.config file with the following entry. Notice you do not need an entry under render kit.
<component>
<component-type>com.mycompany.hello</component-type>
<component-class>view.components.msg.HelloUIComp</component-class>
</component>
Finally, you will need to create (or append to) a tag library
================== myTest.tld ====================
<?xml version = '1.0' encoding = 'windows-1252'?>
<taglib xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee">
<display-name>tests</display-name>
<tlib-version>1.0</tlib-version>
<short-name>tests</short-name>
<uri>http://mycompany.mil/tests</uri>
<tag>
<name>hello</name>
<tag-class>view.components.msg.HelloUICompTag</tag-class>
<body-content>JSP</body-content>
</tag>
</taglib>
=============================================
Notice you don't need a custom renderer class. The component is self-redering.
To use the component, create a myTest.jspx file like the following:
============ myTest.jspx ===============
<?xml version='1.0' encoding='windows-1252'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:afh="http://xmlns.oracle.com/adf/faces/html"
xmlns:af="http://xmlns.oracle.com/adf/faces"
xmlns:mebs="http://mycompany.com/tests">
<jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
doctype-system="http://www.w3.org/TR/html4/loose.dtd"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
<jsp:directive.page contentType="text/html;charset=windows-1252"/>
<f:view>
<afh:html>
<afh:head title="Testing Components">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252"/>
</afh:head>
<afh:body>
<h:form>
<af:panelPage title="My Component Test">
<f:facet name="menu1"/>
<f:facet name="menuGlobal"/>
<f:facet name="branding"/>
<f:facet name="brandingApp"/>
<f:facet name="appCopyright"/>
<f:facet name="appPrivacy"/>
<f:facet name="appAbout"/>
<!--
Well, this is a bad place to put our component
This will render a <af:form> within the above <h:form>
Should be placed outside the h:form or edit the component and remove the form
-->
<mebs:hello/>
</af:panelPage>
</h:form>
</afh:body>
</afh:html>
</f:view>
</jsp:root>
===================================
Hope this helps you.

Similar Messages

  • Excpeption creating custom component

    Hi all,
    I'm using Sun's RI 1.2 to create a custom component that consist of
    standard components. My problem is that this custom component renders
    ok but when I submit the form that contains it I get an
    IndexOutOfBoundsException.
    Can anyone please tell me what's causing this or what's the problem?
    Here's the exception:
    java.lang.ArrayIndexOutOfBoundsException: 1
         at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1160)
         at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1164)
         at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1164)
         at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:310)
         at com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:300)
         at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:174)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
         at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
         at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
         at org.mortbay.jetty.Server.handle(Server.java:313)
         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
         at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
         at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
    And here's the custom component code:
    public UIBooleanFieldset() {
    setConverter(new BooleanConverter());
    setRendererType(null);
    Application application = FacesContext.getCurrentInstance().getApplication();
    HtmlSelectOneRadio htmlSelectOneRadio = (HtmlSelectOneRadio)
    application.createComponent(HtmlSelectOneRadio.COMPONENT_TYPE);
    htmlSelectOneRadio.setId(getId() + "_radios");
    ValueBinding radioBinding =
    application.createValueBinding("#{persoonBean.sex}");
    htmlSelectOneRadio.setValueBinding("value", radioBinding);
    htmlSelectOneRadio.setLayout("pageDirection");
    UISelectItems selectItems = (UISelectItems)
    application.createComponent(UISelectItems.COMPONENT_TYPE);
    ValueBinding selectBinding =
    application.createValueBinding("#{persoonBean.sexItems}");
    selectItems.setValueBinding("value", selectBinding);
    htmlSelectOneRadio.getChildren().add(selectItems);
    getChildren().add(htmlSelectOneRadio);
    Thanks for any help!
    regards,
    Jeroen

    Hi,
    I had a little trouble find a maven repository serving the RI jars but eventually I found one:
           <dependency>
             <groupId>javax.faces</groupId>
             <artifactId>jsf-impl</artifactId>
             <version>1.2-b19</version>
           </dependency>
           <dependency>
             <groupId>javax.faces</groupId>
             <artifactId>jsf-api</artifactId>
             <version>1.2_02</version>
           </dependency>By the way, I had this problem with the myfaces 1.2 implementation too.
    Thanks for your help,
    Jeroen

  • How to create custom component in CRM 2007

    Hi.
    I am new for the CRM 2007 Web UI.
    Here we have CRM_UI_FRAME.
    Like this so many Components are there.
    I want how to create our own component.
    I created it as follows.
    Open the Transaction code bsp_wd_cmpwb.
    Provide Z Name in the Component.
    Zcomponent
    Press Create button.
    Go to Run Time Repository.
    Press Change Mode.
    Create a MODEL as ALL.
    GO to Browser Component Structre.
    Select View.
    Provide View name.
    Create the View.
    Go to view Layout.
    Provide the code like this.
    <%@page language="abap"%>
    <%@ extension name="htmlb" prefix="htmlb"%>
    <%@ extension name="xhtmlb" prefix="xhtmlb"%>
    <%@ extension name="crm_bsp_ic" prefix="crmic"%>
    <%@ extension name="bsp" prefix="bsp"%>
    <cthmlb:overviewFormConfig/>
    Create the context under the context.
    Go to Configuration tab.
    Assigne the Attributes to the Screen.
    GO to the Run Time Repository.
    press change mode.
    Assigne the view name to the Window.
    Save it.
    Test the Componet. But it is not diaply anything on the screen.
    How i will get the data into the web UI.
    Can anybody expalin about this one to me with screen shorts if possible.
    I want add some fields into the web UI. Provide some values into that. Capture the values.
    Navigate the data from one screen to another screen. How it is possible. I did not understand. 
    If i am changing any screens in the pre define component it shows dump.
    So, now i need Custom component with adding of the fields.
    Please give me proper information regarding this one.
    Thank You.
    Krishna. B.

    Hi,
    Try put the htmlb to show a field:
    <thtmlb:label design="LABEL" for="//<context>/<field>" text="<field>"/>
    <thtmlb:inputField  id="<field>" maxlength="31" size="20" value="//<context>/<field>"/>
    In order to get value, you can write a simple code in the event_handler:
    LR_BOL                      type ref to IF_BOL_BO_PROPERTY_ACCESS
    LR_BOL = ME->TYPED_CONTEXT-><context>->COLLECTION_WRAPPER->get_current()
    var1 = LR_BOL->GET_PROPERTY_AS_STRING('FIELD').
    take a look at lr_bol methods so that you can see the set and get methods.
    Regards,
    Renato.

  • ADF Faces: Making a component non-navigable. How?

    Hi,
    Is it possible to make an ADF Faces component non-navigable? Something like specifying
    tabindex="-1"in HTML.
    I need this most for buttons.
    Best regards,
    Bisser

    That's right. JSF produces such IDs. They are causing problems with JAAS login forms, so we should use plain JSPs for login, but for the rest of the tasks such IDs are okay.
    What I meant is that currenty the buttons are not rendered as
    <input type="button" ... />but as pictures embedded in hyperlinks (&lt;a>).
    It's possible, though not likely, that in some future version of ADF Faces some component will be rendered as an HTML element that doesn't support tab ordering (although I haven't really considered if there are such elements). Then the trick with manually setting the tabIndex of the parent HTML element won't work.
    Of course, I deeply appreciate the fact that you take the time to help us on this forum. In fact, I will go ahead and do just that -- I will dynamically set the tabIndex via JavaScript. I was simply wanting to make sure that I wasn't taking such a hack-like approach, if there was a better method.
    Thank you again.
    Best regards,
    Bisser

  • ADF Faces af:showOneTab component - Mozilla Firefox problem

    I'm new to ADF Faces.
    I made simple subpage flow with showOneTabs component. It looks like thist:
    <f:view>
    <afh:html>
    <afh:head title="title"/>
    <afh:body>
    <af:panelPage>
    <f:facet name="pageHeader">
    <af:form id="formNavigate">
    <af:panelGroup type="vertical">
    <af:showOneTabs position="above">
    <af:showDetailItem text="Tab1">
    <jsp:include page="sub1.jsp"/>
    </af:showDetailItem>
    <af:showDetailItem text="Tab2">
    <jsp:include page="sub2.jsp"/>
    </af:showDetailItem>
    Subpages (sub1.jsp and sub2.jsp) looks like this:
    <afh:html>
    <afh:body>
    <af:outputText value="sub1"/>
    and it works fine. But only with IE. When try to swith to Tab2 in Mozilla Forefox 0.9 nothig happends. Anyone knows why.
    Regards
    bhs

    Get rid of the <afh:html> and <afh:body> in sub1.jsp and sub2.jsp; you can't have <HTML> and <BODY> inside other <HTML> and <BODY> tags.
    -- Adam Winer

  • ADF BC + ADF Faces 10.1.3.3: Ajax with ADF.

    Hi Comunity
    I developed a ADF Faces page with AJAX funcionality, im not using others frameworks like icefaces or richfaces i develop the ajax code by my self. I try to add dinamic html tags in a table incrementing row by row, when i combined a div with a binding value like id#{status.index} the finaly results is the same the value not printed in the page.
    Any sugestions.¿?.

    Hi Peter
    I had the same problem a few weeks ago.
    The limitation is that JSF 1.1 does not allow the mix and match of HTML and JSf components. I found the solution using af:script to print html tag combined with #{status.index} value like this:
    <afh:script id="script1" generatesContent="true" text="document.write('&lt;p id=id#{status.index}>...&lt;/p>');"/>
    I works great for me.
    Good Luck.

  • JDeveloper 11.1.2.3, ADF Faces: need declarative component idea for table

    Some background:
    I'm trying to create a reusable toolbar for standard af:table behavior, see screen shot
    http://wesfang.files.wordpress.com/2013/05/dc.jpg
    I got the idea from the from using documentation Frank has published in the past
    1. http://www.oracle.com/technetwork/developer-tools/adf/learnmore/001-access-declarative-comp-attr-169113.pdf
    2. Adding a new row programatically
    The consuming subsystem's page passes in a "MyPageBean" which is a subclass of a "ArchBean" where all actionlistener operations are defined. The idea here is to minimize developer customization when using this component.
    ... <f:facet name="toolbar">             <af:toolbar id="t2">                 <mskcc:basicTransactionToolbar id="btt1" pageBean="#{MyPageBean}" tableId="t1"/>             </af:toolbar> </f:facet> ...
    The table within the consuming page is by default dropped off as a "editable" table. The developer needs to further modify the "disable" attribute to true for all the input fields and command components within the table. I would like to remove this developer step and instead have it in an architectural component. All ideas are welcome.

    Ok, finally got it working (sort of)
    Using the following method as you suggested:
    public void encodeChildren(FacesContext fc){
            try {          
                super.encodeChildren(fc);
                RichTable table =
                    (RichTable)ADFFacesUtil.findComponentInRoot((String)this.getAttributes().get("tableId"));
                lockUnlockTable(table); //method for toggling disable attribute for all command and input components
            } catch (IOException e) {
                e.printStackTrace();
    }Now the strange problem I encountered is that the encode methods are not called if the declarative component is defined within a panelCollection's f:facet-toolbar like below:
    <f:facet name="toolbar">
                        <mskcc:basicTransactionToolbar id="btt1" tableId="t1" pageBean="#{TestBean}"/>
    </f:facet>Also the above code has to be manually created because the design time editor does not allow me to drop off the dc within the toolbar facet (even though the dc is a toolbar!)
    Instead, If I move the dc outside the panelcollection, then the encode methods are invoked and the desired enable/disable behavior is correctly displayed.

  • ADF Faces - Using ProgressIndicator Component as a Process Indicator

    Hi, I'm working on JDeveloper 10.1.3.2.0 and I'd like to know if there is an example anywhere for the next case:
    I have 2 jspx pages: one is a form with search fields. The other one is a table with the results of the search.
    I made some tests with both Poll and ProgressIndicator so that, when the user clicks the "Search Button", the clock of the ProgressIndicator component appears (just the clock) and, when the search is over, the application redirects you to the results page.
    I had to use javascript and I almost got it, but there's a problem. Once you're in the results page, if you click the "Back" button of the browser, the clock appears as if you're requesting the search again (but you're not, of course)
    Do you know if there is a simpler way to achieve this solving this last problem and without javascript code?
    Thanks in advance

    Hi,
    you can use the JavaScript on the target page in an onLoad statement to delete the browser history. This way the back button doesn't work at all. I received a mail from another customer who did it that way
    Frank

  • Create customized component for Configurator Panel

    The SWFWidget can load a Flash component on the Configurator
    Panel.
    But if your SWF component is a "Flash Panel" which called the
    "CSXSInterface" and execute some functions in the "JSX" file. It's
    a little different
    For example, the "color picker" in the flash panel SDK at url
    http://download.macromedia.com/pub/developer/photoshop/sdk/photoshop_panel_developers_guid e_win.zip
    You still can load this "colorpicker.swf" in a Configurator
    Panel with SWFLoader Widget, it can talk with CSXSInterface
    correctly.
    The only manual step required additionally is that:
    After you export your panel into the Plug-in/Panels folder,
    you can found a file with name "YourPanel.jsx", then copy and paste
    all the script code in "color picker.jsx" into this
    "YourPanel.jsx", then start PS.
    You can see the "Color Picker" works in your Configurator
    Panel as a component.
    I'd uploaded a sample onto exchange at url
    http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&loc=en_us&extid=1715 022
    This link is not approved yet, may be available several days
    later.

    Dear ,
    You can try to develope a report with the help of you ABAPer with following FM /BAPI :
    CSAP_MAT_BOM_MAINTAIN
    CSAP_MAT_BOM_OPEN
    CSAP_BOM_ITEM_MAINTAIN
    CSAP_MAT_BOM_CLOSE
    Refer this experts theards on this issues : Deletion of BOM item using BAPI/FM
    If you need to go ahead with ECM , you refer  our earlier posting in the same issue :
    Changes in Production Orders
    Regards
    JH

  • Get or create custom Component?

    I want to have something that looks like the "File and Folder Tasks" or "Other Places" that are on the left in a folder on Windows (I'm using XP). Is there something similar available somewhere or would I have to make it myself?

    It looks promising but I'm not so sure whats going on with swingx. Firstly I had problems finding it because of broken links. The .jar file I found at
    https://swingx.dev.java.net/servlets/ProjectDocumentList?folderID=11890&expandFolder=11890&folderID=11866
    is 7.1MB? Will I have to include the whole 7.1 in my application?

  • Creating Custom Validators for ADF in JDev 10.1.3.1

    Hi all,
    I'm trying to create a validator to solve a seemingly common problem - that is given 2 dates (startDate & endDate), validate that endDate cannot be earlier than startDate.
    In my case, both startDate and endDate are in the same form. From the ADF Developers Guide, the recommended approach is to create the validation method on the page's backing bean. But in my application, there are many occurrences of startDate and endDate in other forms, therefore having the validation method on the backing bean might not be the best solution.
    I tried to create my own custom validator and tying it to a tag library stated in http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFDevelop6.html#wp999130, but that didn't seem to work either. I'm not sure if creating custom validators by extending the ValidatorTag is supported in ADF.
    Would appreciate it if someone has any suggestions on how to create the validator that I need, without having validation methods that does the same thing all over my backing beans.
    TIA.
    Regards,
    Lennard

    Hi,
    of course, ADF Faces supports custom validators because it is compliant to the JSF APIs runnting on the JSF RI.
    Another approach for validation would be on the business service level. Assuming you use ADF BC, the EO can have a method validator defined that is automatically inherited by all its views. The disadvantage though is that the error message would have to come from the server, requiring custom error message handling for user friendly messages as described in the developer guide.
    Looking forward, in a next release of ADF the binding ayer will allow more complex validations thus not requiring to handle complex validation on teh business service.
    So far however I think that using a custom validator is the best you can do. Note that in the case of ADF BC the date is of type oracle.jbo.server.domain.Date and not java.util.Date, which might be a hint to check for your validator issue
    Frank

  • How to add adf faces in component pallete of jdeveloper 11g?

    how to add adf faces in component pallete of jdeveloper 11g?

    Hi,
    the replacement of ADF Faces HTML components in JDeveloper 11 is Trinidad. For existing applications, a migration path will be provided in JDeveloper 11 production. I wouldn't recommend configuring ADF Faces in JDeveloper 11.
    You an configure ADF Faces Components in JDeveloper 11 by :
    - Tools --> Manage Libraries
    - Create a User Library
    - select ADF Faces adf-faces-impl.jar
    - Enure the namespace is not af or afh but something different to not cnflic with teh ADF Faces RC components
    Note that adding the ADF Faces components to the component palette will not make them show in the ADF binding context menu nor will it automaticaly set up the web.xml file. The components are available as any other JSF library set
    Again, I wouldn't go this way ;-)
    Frank

  • Customized Error/Info  Messages in ADF FACES Pages

    hi every one...
    I need to display customized eerror/info messages in a ADF Faces application.
    How can i use adf:message componenet to do this...

    Hi,
    af:messages show all messages added to the JSF message stack
    FacesContext fctx = FacesContext.getCurrenInstance();
    fctx.addMessage("Some Name Strinng here", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Your error message here",null));
    If <"Some Name Strinng here"> is the id of a component then the error message is also shown below this component
    For customizing error messages - e.g. translating Exceptions into useful user information, see SRDemo, which can be downloaded and installed through JDeveloper Help-->Check for Updates.
    Frank

  • How to create custom(or) user defined component in SAPTAO

    Hi,
       Please provide me some document or steps on how to create custom component in sap tao.
    Thanks a lot in advance.
    Regards,
    Sudha

    Hi,
    If you want create any custom components, you should use SAP QTP to create it.
    Here are the simple steps:
    i) Go to QTP -> Click on New - > Select Scripted Component - > ((Select SAP_Doc) area (i.e. whatever application area you have created for SAP TAO installation)) -> Record or Write a script based on your requirement & save
    ii) Go to QC -> BPT -> open above component and insert the parameters and call these values in QTP script level (either way you can do)
    iii)  Create a datasheet and declare the parameters in datasheet and call this sheet whenever you have required.
    Good luck.
    Ram

  • Adf faces skin-family change for page or component

    I know how to change this by editing adf-faces-config.xml tile. Is it possible to change the skin-family at a page level or for even for an individual component?

    You can change the skin at the page level by setting the value of the skin-family property to an expression language:
    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/view/faces/config">
    <skin-family>#{skinFamily.skinSelection}</skin-family>
    </adf-faces-config>
    Where skinFamily is a managed bean and skinSelecion can be implemented as follows:
    public String getSkinSelection()
    FacesContext context = FacesContext.getCurrentInstance();
    UIViewRoot viewRoot = context.getViewRoot();
    String viewId = viewRoot.getViewId();
    System.out.println(viewId);
    if ( viewId.startsWith("/blaf/") ) {
    skinSelection = "oracle";
    else if ( viewId.startsWith("/minimal/") ) {
    skinSelection = "minimal";
    else if ( viewId.startsWith("/vantive/") ) {
    skinSelection = "vantive";
    return skinSelection;
    If you want to have two components, let's say, two tables, at the same page but with a different style you can accomplish that by using the inline-style tag.
    []'s

Maybe you are looking for