Customizing ADF component rendering

Hi,
I'm trying to override some ADF component rendering in order to provide some clients with a simple application appearance. To do so, in faces-config.xml:
<pre>
<render-kit>
<render-kit-id>oracle.adf.core</render-kit-id>
<renderer>
<component-family>oracle.adf.Panel</component-family>
<renderer-type>oracle.adf.Page</renderer-type>
<renderer-class>com.mycompany.web.faces.renderer.MyPanelPage</renderer-class>
</renderer>
</render-kit>
</pre>
I define MyPanelPage class that extends javax.faces.render.Renderer class. I override encodeBegin, encodeEnd, encodeChildren and getRendersChildren methods and it works fine. However, I run into a problem when I want to make the renderer work "in default mode" (the way it ussually works) under certain condition. I suppose that there might be a special render class used by "oracle.adf.core" render kit to render panelPage component, which determines the location of every facet. Anybody know which is this class.
Thanks in advance.
Luis Serrano.

Hi,
check PageLayoutRenderer
Frank

Similar Messages

  • Calling a method in the Custom ADF component from JSF page

    HI.
    I have created some custom compoents by extending the core ADF Components. Like i have a ComboBoxDefault component with it's ComboBoxDefaultTag.java and Controls.tld file.
    Now my requirement is i want to bind my label to this component from the JSF page. like
    <fwcontrols:label binding="#{listComponents.comboBoxDefaultLabel}" id="label1"/>
    <fwcontrols:comboBoxDefault binding="#{listComponents.cmbLocales}"
    value="en_GB" id="comboBoxDefault" autoSubmit="true" label="label1">
    <f:selectItems value="#{listComponents.locales}"/>
    </fwcontrols:comboBoxDefault>
    In my JSF page the label will have an id, and that id will be specified in the label tag of the component.
    In Tag.java file i have overrided the setProperty(FacesBean facesBean). In this method i have bind all my properties. In core JSF the setProperty method is provided with the UIComponent parameter, so i can call my method in component also. Which is not in case of ADF Faces.
    My main point is how i can call my method setLabel() which is in ComboBoxDefault.java so that i can set the label.
    Thanks in Advance.

    Thanks for all your replies. I want this kind of a functionality because Im trying to invove a DC (Child DC) from a Parent DC such that the Child DC's view is displayed onto the view container of the Parent DC. I have embedded using 'interface view of a component instance' in the Parent Window and am able to create the component and set usage though the onPlugDefault of the Child View.
    But I observe that when i make a call from the parent, the flow is like this:
    1. The wdDoInit of the Child Component Controller gets triggered first.
    2. Then the wdDoInit of the Child's <b>VIEW</b> gets triggered
    3. and <b>THEN</b> the onPlugDefault of the Child Component Interface View
    What I had actually wanted was to Fire onPlugDefault where Im calling a method LoadData(), after which the Child DC's view must be triggered so it can display the fetched data.
    What is actually happening is the view gets displayed, but no data is displayed in the view.
    Right now I have just given a work around where Im triggering <b>LoadData()</b> of the <b>COmponent COntroller</b> from the <b>wdDoInit</b> of the <b>VIEW</b>.
    Is there a better way to do this? I find it strange that I have to load the Data from the view.
    Thanks
    Jack

  • How to override the renderer for ADF component?

    I want to overide the renderer for ADF components, without using <default-render-kit>, I defined every render class. But It does not work.
    Always told me: Could not find renderer for CoreOutputText[UIXFacesBeanImpl, id=_id0], rendererType = oracle.adf.Text
    How can I config custom renderer for exsiting component or new components?
    Thanks a lot!
    <render-kit>
    <render-kit-id>oracle.adf.core</render-kit-id>
    <renderer>
    <component-family>oracle.adf.Output</component-family>
    <renderer-type>oracle.adf.Formatted</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.renderkit.core.xhtml.OutputFormattedRenderer</renderer-class>
    </renderer>
    <renderer>
    <component-family>oracle.adf.Choose</component-family>
    <renderer-type>oracle.adf.Date</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.renderkit.core.xhtml.ChooseDateRenderer</renderer-class>
    </renderer>
    <renderer>
    <component-family>oracle.adf.Input</component-family>
    <renderer-type>oracle.adf.Text</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.renderkit.core.xhtml.InputTextRenderer</renderer-class>
    </renderer>
    <renderer>
    <component-family>oracle.adf.SelectInput</component-family>
    <renderer-type>oracle.adf.Date</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.renderkit.core.xhtml.SelectInputDateRenderer</renderer-class>
    </renderer>
    <renderer>
    <component-family>oracle.adf.Object</component-family>
    <renderer-type>oracle.adf.Separator</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.uinode.UINodeRendererBase</renderer-class>
    </renderer>
    <renderer>
    <component-family>oracle.adf.Command</component-family>
    <renderer-type>oracle.adf.Link</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.renderkit.core.xhtml.CommandLinkRenderer</renderer-class>
    </renderer>
    <renderer>
    <component-family>oracle.adf.Panel</component-family>
    <renderer-type>oracle.adf.Group</renderer-type>
    <renderer-class>oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelGroupRenderer</renderer-class>
    </renderer>
    </render-kit>

    Seems I need override the encodeSelectItem() method.
    But not sure which class is the renderer for af:selectManyCheckbox. And how to set below
    <component-family>???</component-family>
    <renderer-type>???</renderer-type>
    Edited by: Leon Zeng on Jul 19, 2012 2:18 PM

  • How to get jsp PageContext in custom component renderer

    Hi,
    How to find PageContext(javax.servlet.jsp.PageContext) form within the custom component renderer class?
    Please help?
    Thanx & Regards
    Milind

    Strictly you're looking which URL has invoked the new request? With other words, you want the referrer?
    If so, doString referrer = request.getHeader("referer"); // Yes, with the legendaric misspelling.Be careful with this, the client has full control over what he/she sends with the headers, so also the referrer. It might be null or changed while you didn't expect that. If you want to be safe, you may consider to send the current URL as a hidden parameter along with the request.

  • Creating a customized copy of an ADF component

    Hi,
    Is it possible to create a copy of a standard ADF component, and then customize the copy without changing the original?
    Using a skin, it is possible to change the look and feel etc. of standard ADF components. But I have a case where I need a customized version of a panel splitter AND an un-customized version, at the same time (on the same page). Any suggestions?
    Regards,
    Andreas

    Hi Arun,
    Sorry about the delay.
    I'm having some trouble making the style take effect.
    I have this in my skin css:
    af|panelSplitter.splitterHelp af|panelSplitter::horizontal-collapse-icon {content: url('/faces/images/Help-icon32x32.png');width:25px;height:25px;}
    af|panelSplitter.splitterHelp af|panelSplitter::horizontal-restore-icon {content: url('/faces/images/Help-book32x32.png');width:25px;height:25px;}
    and, on my page I have:
    <af:panelSplitter id="ps2" styleClass="splitterHelp">
    <f:facet name="first">
    <af:outputText value="Content" id="ot6"/>
    </f:facet>
    <f:facet name="second">
    <af:outputText value="Helptext" id="ot7"/>
    </f:facet>
    </af:panelSplitter>
    But this doesn't work (the splitter is displayed, but unstyled).
    I've tried using this syntax in the css file instead:
    .splitterHelp af|panelSplitter::horizontal-collapse-icon {content: url('/faces/images/Help-icon32x32.png');width:25px;height:25px;}
    .splitterHelp af|panelSplitter::horizontal-restore-icon {content: url('/faces/images/Help-book32x32.png');width:25px;height:25px;}
    But this does not work, either.
    Lastly, I've tried doing something simpler but similar:
    .styleTest af|inputText::content
    background-color: InfoBackground;
    (just to see if I could get ANY style from my skin to take effect). And this works fine.
    The definition of .styleTest seems to me to be very similar to the definition of .splitterHelp. Yet, .styleTest works, and .splitterHelp does not.
    Thinking that the problem might be the icon files, I've tried using some of my own icons instead (placed in an image folder in the skin workspace), but this does not seem to make any difference.
    Can you (or anyone else) please tell me what I'm doing wrong?
    Regards,
    Andreas

  • How to add properties to a custom JSF component?

    Hello, everybody!
    I've just developed my first custom JSF component. It's a data pager and it is working pretty well. But now I want to be able to use some of it attributes in my backing beans at runtime. I mean, I want to bind it to component in the JSF page. It already has a binding attribute in the tld file, but I want to be able to accesss two values that the renderer of my custom component calculate inside it, which would relieve me from calculating these values manually in the backing beans. So, I would like to know how to make these values external to the component.
    By now this is my custom pager class:
    import javax.faces.component.UICommand;
    public class UIPaginadorDados extends UICommand
    }You can see that it has no logic because all the logic is in the renderer class:
    import javax.faces.render.Renderer;
    public class PaginadorDadosRenderer extends Renderer
        // logic here
    }As I said I want to be able to do the following in my backing beans:
    private UIPaginadorDados pager = new UIPaginadorDados();
    // and later...
    pager.getCurrentPage();
    pager.getPageCount();In the JSF page:
    // I already can do this, because I have a binding attribute
    <urca:paginadorDados binding="#{backingBean.pager}" />I suppose that I'll have to create the properties getCurrentPage() and getPageCount() in the component class, UIPaginadorDados, but I don't know how to get the values to the properties from the renderer class. I don't even know if this is how I should do it.
    So I would appreciate a lot your help about this subject.
    Thank you.
    Marcos

    Marcos_AntonioPS wrote:
    RaymondDeCampo wrote:
    I neglected to mention: do not forget to implement the methods in StateHolder to preserve the properties you added to your component.Hello, Raymond. Could you elaborate a little more on that? If you could give a short example, it would be helpful.
    MarcosNo problem. I have already found out how.
    Thank you very much, Raymond.
    Marcos

  • Custom itemRenderer component based on cell value: error 1009

    I'm working on an item renderer for a dataGrid that has different states depending on the cell and row values.
    The cell value is a toggle (true or null), and sets whether content should be shown in the cell or not
    The row properties determine what is shown when the cell value is true.
    The dataGrid dataProvider is populated based on user id input.
    I created the itemRenderer as a custom actionscript component, closely following this example:
    360Flex Sample: Implementing IDropInListItemRenderer to create a reusable itemRenderer
    However, my component results in Error #1009 (Cannot access a property or method of a null object reference) when a user id is submitted.
    package components
         import mx.containers.VBox;
         import mx.controls.*;     import mx.controls.dataGridClasses.DataGridListData;
         import mx.controls.listClasses.BaseListData;
         import mx.core.*;
         public class toggleCellRenderer extends VBox
              public function ToggleCellRenderer()
              {super();}
              private var _listData:BaseListData;   
                   private var cellState:String;
                   private var cellIcon:Image;
                   private var imagePath:String;
                   private var imageHeight:int;
                   private var qty:String = data.qtyPerTime;
                   private var typ:String = data.type;
              public function get listData():BaseListData
                   {return _listData;}
              public function set listData(value:BaseListData):void
                   {_listData = value;}
              override public function set data(value:Object):void {
                   super.data = value;
                   if (value != null)
                   //errors on next line: Error #1009: Cannot access a property or method of a null object reference.
                   {cellState = value[DataGridListData(_listData).dataField]}
              override protected function createChildren():void {
                   removeAllChildren();
                   if(cellState=='true'){
                        cellIcon = new Image();
                        addChild(cellIcon);
                   //there is another state here that adds another child...
              //next overrides commitProperties()...
    There are no errors if I don't use an itemRenderer--the cells correctly toggle between "true" and empty when clicked.
    I also tried a simple itemRenderer component that disregards the cell value and shows in image based off row data--this works fine without errors or crashing. But I need to tie it to the cell value!
    I have very limited experience programming, in Flex or any other language. Any help would be appreciated.

    Your assumption that the xml file either loads with "true" or nothing  is right.
    After modifying the code to the following, I don't get the error, but it's still not reading the cell value correctly.
    package components
         import mx.containers.VBox;
         import mx.controls.*;   
         import mx.controls.dataGridClasses.DataGridListData;
         import mx.controls.listClasses.BaseListData;
         import mx.core.*;
         public class toggleCellRenderer extends VBox
              public function ToggleCellRenderer()
               super();
              private var _listData:BaseListData;   
              private var cellState:Boolean;
              private var cellIcon:Image;
              private var imagePath:String;
              private var imageHeight:int;
              private var qty:String;
              private var typ:String;
               public function get listData():BaseListData
                 return _listData;
              override public function set data(value:Object):void {
                   cellState = false;
                   if (listData && listData is DataGridListData && DataGridListData(listData).dataField != null){
                       super.data = value;
                       if (value[DataGridListData(this.listData).dataField] == "true"){
                           cellState = true;
              override protected function createChildren():void {
                   removeAllChildren();
                   if(cellState==true){
                        cellIcon = new Image();
                        addChild(cellIcon);
                   //there is another state here that adds another child...
              //next overrides commitProperties()...
    - didn't set the value of qty or typ in the variable declarations (error 1009 by this too--I removed this before but wanted to point out in case its useful)
    - added back in the get listData() function so I could use the listData
    - changed the null check
    All cells are still returning cellState = false when some are set to true, even if I comment out [if (value[DataGridListData(this.listData).dataField] == "true")] and just have it look for non-null data. That shouldn't make a difference anyway, but it confirms that all cells are returning null value.
    Swapping out the first if statement in set data with different variables results in the following:
    [if (listData != null)]  all cells return null (cellState=false for all)
    both [if (value != null)] and  [if (DataGridListData != null)]  results in error 1009 on a line following the if, so I assume they return non-null values.
    All rows have data, just not all fields in all rows, so shouldn't listData be non-null?  Could it be that the xml file hasn't fully loaded before the itemRenderer kicks in?
    I also realized  I had removed the item renderer from many of the columns for testing, and since some columns are hidden by default only one column in the view was using the itemRenderer--hence the single alert per row I was worried about earlier.
    Thanks for your help so far.

  • How to initialize an adf component before a page loads

    Hi all
    I use JDeveloper 11.1.2.2.0
    I have two pages:
    first page has a link to a second page
    <af:document title="first.jspx" id="d1">
      <af:form id="f1">
        <af:commandLink text="Page 2" id="cl1" action="goToSecondPage" actionListener="#{Bean.handleLinkActionEvent}"/>
      </af:form>
    </af:document>and the second page has an inputText component:
    <af:document title="second.jspx" id="d1">
      <af:form id="f1">
        <af:inputText label="Text" id="it1" binding="#{Bean.inputText}" readOnly="true"/>
      </af:form>
    </af:document>First I load first.jspx and than I click the link. This event is handled in handleLinkActionEvent() method, in which I want to set a value to the inputText component of the second page. But I can't do it, because as expected I get NullPointerException.
    So the question is how to initialize an adf component before a page loads?
    Evgeny Michuk
    Edited by: Evgeny Michuk on Oct 4, 2012 11:30 PM

    Thanks a lot for your replies and links, it gives me some new knowledges.
    I got your approach and achieved the aim for the described situation with tag <f:setPropertyActionListener>:
    <af:commandLink text="Page 2" id="cl1" action="goToSecondPage"
                           actionListener="#{Bean.handleLinkActionEvent}" binding="#{Bean.firstPageLink}">
      <f:setPropertyActionListener target="#{pageFlowScope.text}" value="Hello, World!"/>
    </af:commandLink>and for the inputText component I set the value:
    <af:inputText label="Text" id="it1"  binding="#{Bean.inputText}"
                                  readOnly="true" value="#{pageFlowScope.text}"/>I used request scoped managed bean and it is shared for both pages.
    I understand that I can set a value of some attribute for managed bean
    and use it to set a value for inputText component of the second page,
    but as I understand it is almost the same way as usage of tag <f:setPropertyActionListener>.
    In my real situation on the second page I have a dynamic table, and it's field is read only.
    Structure of this table depends on a link clicked on the first page.
    So I define components for table columns in runtime, it may be outputText, inputDate, goLink and some others.
    And I have to get table through the UIComponent binding to set columns.
    Certainly I can define all needed components for all columns
    and render it according to the column types
    <af:table value="#{Bean.collectionModel}" var="row" id="t1" binding="#{Bean.mainTable}">
       <af:forEach items="#{Bean.columnDescriptionList}" var="column">
          <af:column headerText="#{column.caption}" id="c1">
             <af:outputText value="#{row[column.fieldName]}" id="ot1" rendered="#{column.type == '1'}"/>
             <af:inputDate value="#{row[column.fieldName]}" id="ot2" rendered="#{column.type == '2'}"/>
             <af:selectBooleanCheckbox id="sbc1" selected="#{row[column.fieldName] == '1'}" rendered="#{column.type == 'n'}"/>
          </af:column>
       </af:forEach>
    </af:table>but I think it is not very good.
    Have you any idea?
    P.S. I hope I clearly explained my situation =)
    Evgeny Michuk

  • How to use CSS to customise ADF component

    I'm not going into skin. However, I want to edit property of ADF component through CSS. How do we do this? Any url link that give complete documentation? (How to represent ADF Component in CSS)
    E.G. I want to set af:column noWrap=true to all table.
    Regards
    Eric H

    Hi,
    just a guess, but give it a try: customize the default Oracle skin as described in the blog post "Customizing BLAF for ADF Faces - easier than Skins for influencing colors and fonts by Lucas Jellema". You don't need to add custom skins, just edit the oracle-desktop.xss file.
    Then you can add a "white-space: nowrap;" property for the appropriate style, which very likely will be AFTableCellDataText. It will be something like this:
    <style name="AFTableCellDataText">
      <property name="white-space">nowrap</property>
    </style>HTH,
    Patrik

  • Is there any ADF component similar to move and move all button

    Hi,
    Is there any button similar to move and move all used in the ADF shuttler component. I have implemented a custom shuttler component in that i used the images as move and move all button.
    Any help would be appriciated.
    Thanks,
    Harish

    You can put an icon to the af:button or try an af:commandImageLink ...
    Timo

  • Create a custom JSF component

    Hi,
    I want to create a custom JSF component. I've setup a new application containing 2 projects:
    - a 'components' project, containing all the custom components
    - a 'view' project, to test the created custom components.
    There is dependency between the components project and the view project. In the view project, I added the
    the Tld, in order to use my components in the project.
    From the component palette, I can drop a component onto a .jspx page but after running the page, no output
    is printed onto the screen. The HTML source code only contains my 'tag-name' (eg: <ctb:mytag/>)
    Am I doing something wrong?
    UIComponent:
    import java.io.IOException;
    import javax.faces.component.UIComponentBase;
    import javax.faces.context.FacesContext;
    import javax.faces.context.ResponseWriter;
    public class BasicComponent extends UIComponentBase {
        public String getFamily() {
            return "BasicComponent";
        public void encodeBegin(FacesContext context) throws IOException {
            ResponseWriter out = context.getResponseWriter();
            out.write("Hello World");
    }Tag
    import javax.faces.component.UIComponent;
    import javax.faces.webapp.UIComponentTag;
    public class BasicComponentTag extends UIComponentTag {
        public String getComponentType() {
            return "BasicComponent";
        public String getRendererType() {
            return null;
    }Tld entry:
      <tag>
        <name>BasicComponent</name>
        <tag-class>BasicComponentTag</tag-class>
        <body-content>JSP</body-content>
      </tag>Thanks in advance,
    Koen Verhulst

    The body tag should be as follows
    <bodycontent>JSP</bodycontent>
    but the JSP will not work. Here is the file:
    <?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:af="http://xmlns.oracle.com/adf/faces"
    xmlns:afh="http://xmlns.oracle.com/adf/faces/html"
    xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"
    xmlns:cf="/WEB_INF/helloWorldLib.tld">
    <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>
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>List of Values</title>
    </head>
    <body><h:form>
    <cf:jsfhello hellomsg="This is it" />
    </h:form></body>
    </html>
    </f:view>
    </jsp:root>
    Edited by: bongo2 on Oct 28, 2008 2:58 PM

  • Custom JSF Component tags ignored after converting to Facelets layout

    I am currently using JDeveloper 10.1.3.3.
    I have a project consisting of .jspx pages. These pages mainly use components from ADF faces core. I also created my own custom JSF component that I use in several of these pages.
    Then, I needed to use Facelets so that I could apply a standard layout to all my .jspx pages. I looked at all the tutorials, and I created a layout.xhtml for my .jspx pages to use. This worked great for my .jspx pages that don't have my custom JSF component.
    Now, when I run my page with my custom component <img:newimage ...etc >
    the tag is ignored and it appears in the page's source as is when it should render as <img.src=...etc>. Attributes of newimage are changed on the page appropriately like width and height, but my component's tag, component, and servlet java files are never accessed.
    How can I fix this? Please help!
    Thanks.

    Hi,
    did you post this issue to the Facelets open source site ? Sounds like an issue with using Facelets
    Frank

  • How do I add a pathfield to each slide in a customized slideshow component?

    While I have customized the foundation components in terms of their dialog structure or jsp rendering thus far, I have not delved as deep as editing the .js files which seems to be what would be required to add a pathfield to each slide in a slideshow.
    im not sure which files i need to alter and include in some sort of clientlibs folder in the customized slideshow component(or where those files are located by default) and how to alter them to add the pathfield per slide(and make sure that field is saved along with other data when dialog is closed).
    Is there anyone out there that could help me with this?  ive gone through the training materials i have and google'd the holy bejeebus out of it but cant really find any answers.
    A video of a NKU slideshow component shows kind of what i am trying to do: http://www.youtube.com/watch?v=nkS6KalmiS0

    The JS files that you will probably need to modify are these -
    /libs/cq/ui/widgets/source/widgets/form/Slideshow.js
    /libs/cq/ui/widgets/source/widgets/form/Slideshow/Slide.js
    /libs/cq/ui/widgets/source/widgets/form/Slideshow/SlidesPanel.js
    /libs/cq/ui/widgets/source/widgets/form/Slideshow/TitlePanel.js
    If all you need to do is add a pathfield to the panel, you should be able to do this by modifying the TitlePanel.js. The way I have customized the slideshow component is copy this files to my app directory and change the xtype on the Slideshow.js when registering it.
    So your custom component would look something like this -
    /apps/mycomponent/slideshow/clientlib/js.txt (for JS libraries)
    /apps/mycomponent/slideshow/clientlib/source/Slideshow.js
    /apps/mycomponent/slideshow/clientlib/source/Slide.js
    /apps/mycomponent/slideshow/clientlib/source/SlidesPanel.js
    /apps/mycomponent/slideshow/clientlib/source/TitlePanel.js
    /apps/mycomponent/slideshow/myslideshow (your custom slideshow component - dialog/jsp etc)
    Your js.txt would look something like this
    #base=source
    Slideshow.js
    Slide.js
    SlidesPanel.js
    TitlePanel.js
    At the very end of your Slideshow.js file, you will register your custom component like so
    // register xtype
    CQ.Ext.reg('myslideshow', CQ.form.Slider);

  • Ses custom adf app

    can this document can be used for developing custom adf serach application for SES 11.1.2.0.0
    http://docs.google.com/viewer?a=v&q=cache:AHMbPpZU3SMJ:www.oracle.com/technetwork/topics/search/whatsnew/ses-integration-wp-132843.pdf%3FssSourceSiteId%3Dotnjp+develop+adf+app+for+secure+enterprisse+search&hl=en&gl=us&pid=bl&srcid=ADGEESi2-YUmZrkYoMdBzlqTyUuf48Isehcum89RA_1YQflRZuzYNbq6QzhdS65ogZdzZJnZvnlFsAJKcFi48hYjmMeJ077Trt1YD-dVBFR8qTCNaHS1YwG3moQH5OoUmcQHhXlC3r92&sig=AHIEtbRTVKHEG8-pluf4_rguF7ttqr9lQg

    Hi,
    I know what is happening, but i do not know why.
    The taskflow has a jspx whith a component binding.
    That binding points to a pageflow scope bean, defined in the taskflow.
    That bean also is used to get the parameters when the taskflow is called.
    I printed the bean hashcode, and for my surprise the parameters are passed to a different bean instance that the binding bean, the beans hashcode are differents.
    Why ? Is that a bug ? What do I have to do ? I need to set the binding to the same bean that gets the parameters.
    This is the component with the binding inside a jspx
    <bpm:processEditor id="processEditor"
    taskflow="true"
    inlineStyle="position:absolute;top:0;left:0;height:100%;width:100%;"
    binding="#{pageFlowScope.processEditorHost.editorComponent}"
    host="#{pageFlowScope.processEditorHost}" messageListener="#{pageFlowScope.processEditorHost.processMessage}"/>
    And this is the bean definition for the taskflow
    <managed-bean>
    <managed-bean-name>processEditorHost</managed-bean-name>
    <managed-bean-class>oracle.bpm.composer.beans.taskflow.TaskflowProcessEditorHost</managed-bean-class>
    <managed-bean-scope>pageFlow</managed-bean-scope>
    </managed-bean>
    For now I did
    final FacesContext context = FacesContext.getCurrentInstance();
    if (context != null) {
    final ELContext elContext = context.getELContext();
    elContext.getELResolver().setValue(elContext, null, EDITOR_COMPONENT, editorComponent);
    To save the component and then i can get it again.
    final FacesContext context = FacesContext.getCurrentInstance();
    ProcessEditor processEditor = null;
    if (context != null) {
    final ELContext elContext = context.getELContext();
    processEditor = (ProcessEditor) elContext.getELResolver().getValue(elContext, null, EDITOR_COMPONENT);
    The problem is that the component is not serializable.
    Regards
    Pablo
    Edited by: user10083573 on Aug 16, 2012 6:06 PM
    Edited by: Pablo Hadziatanasiu on Aug 17, 2012 10:26 AM
    Edited by: Pablo Hadziatanasiu on Aug 17, 2012 11:41 AM

  • Is it possible to call the Print Quote functionality from Custom ADF page

    Hi,
    We are researching if it is possible to call the Print Quote functionality from the Custom ADF application.
    Goal is to pop up the PDF report upon clicking the Print Quote button on the custom page. Is it possible ?
    Atleast advice on the direction to go forward is appreciated.
    Thanks
    Sai

    Hi ,
    Please check following thread on forum -
    Re: ADF: Calling OAF Page from ADF page
    Check this may also be useful-
    https://blogs.oracle.com/shay/entry/to_adf_or_oaf_or
    I have not tried yet but Steven Chan (Sr. Director OATG) suggest following methodolgy for this-
    https://blogs.oracle.com/stevenChan/entry/appsdatasource_jaas_ebs
    Thanks,
    Ashish

Maybe you are looking for