Add ViewObjects to Declarative Component

Hi All
I'm developing web application using jdeveloper 11.1.2.0
this is my use case.
In my jsf page I have to show the prevailing alerts to the user.
I have Alert_Log table and using a Poll, I'm viewing latest Alerts to the user.So that user will be automatically notified with the alerts.
My idea is to build this alert behavior as a declarative component so that other modules can also consume this without re-building alerts in each module.
How can I implement this behavior as a declarative component.
Please suggest me a solution for this. Any code samples are highly appreciated
Thanks
Padma

Its not a standard to add view objects to a declarative component , it generally has only UI components which dynamically get values for certain attributes.
You should ideally use Taskflows which can be reused as a region. The UI project which gets the business logic from ADF BC can be packaged as a ADF Jar and reused as mentioned below -
http://docs.oracle.com/cd/E24382_01/web.1112/e16182/reusing_components.htm#insertedID1
For Polling you can find examples similar to this - http://mjabr.wordpress.com/2011/05/06/refresh-part-of-the-page-periodically-using-poll-component/

Similar Messages

  • How can add some suggested value to a propert on a Declarative Component,

    how can add some suggested value to a propert on a Declarative Component?

    kenyatta,
    Where you want to add the value ?
    If you want put some UIComponent(Value) to your declarative Component than follow my blog ( http://jneelmani.blogspot.com/2009/02/11g-how-to-create-declarative-component.html ) and add your value in STEP-5.
    You can watch live-demo at http://www.oracle.com/technology/products/jdev/viewlets/viewlet.html
    --Neelmani Jaiswal
    Edited by: Neelmani Jaiswal on Mar 23, 2009 11:11 AM

  • Creating Declarative Component problem.

    Dear all
    I use Jdeveloper 11.1.1.4.0.
    I am planing to create an ADF declarative Component.The component will be a panel collection layout which contains menu (Action>Export to excel) and command button (Add new record).
    The scenario will be like this:
    1- The developer will drag my new component (myCustomPanel) to his page and will drag the data control inside this comonent to create ADF Read only table.
    2- at runtime the table should appear surrounded by (myCustomPanel) and the user can use the "Action" menu to export the content to Excel, and can click on "Add new Record"to navigate to another page to add record.
    The solution I made is:
    in my "myCustomPanel" I created two attributes , the first one is "tableID" and the second is "targetPage" represents the outcome of the navigation to the "Add new record" page.
    The developer must provide these two attributes when using "myCustomPanel".
    The problem is:
    at runtime when the user click on "Add new record" button an error is raised .
    The error in this line:
    <af:commandToolbarButton text="Add" id="dc_ctb1" action="#{attr.targetPage}"/>
    the action property of the command button expects a managed bean. But i proved it with page attribute.
    I want to dynamicly provides the naviation outcome to the button using attribute name. Is this possible?
    regards

    Thank you so much for you replying.
    Your solution is helpful
    I tried to do the following :
    1- in my "customcomponent" project I removed the attribute "taregtPage"
    2- I added a method attribute
    name: targetPage
    method-signature: java.lang.String method()
    <af:componentDef var="attrs" componentVar="component">
        <af:panelCollection id="collection">
          <f:facet name="menus">
            <af:menu text="Action" id="dc_m1">
              <af:commandMenuItem text="Export To excel" id="dc_cmi1"/>
            </af:menu>
          </f:facet>
          <f:facet name="toolbar">
            <af:toolbar id="dc_t1">
              <af:commandToolbarButton text="Add" id="dc_add"
                                       action="#{attrs.targetPage}"/>
            </af:toolbar>
          </f:facet>
          <f:facet name="statusbar"/>
          <af:facetRef facetName="tableContent"/>
        </af:panelCollection>
        <af:xmlContent>
          <component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
            <display-name>dhamanTable</display-name>
            <facet>
              <facet-name>tableContent</facet-name>
            </facet>
            <attribute>
              <attribute-name>tableID</attribute-name>
              <attribute-class>java.lang.String</attribute-class>
              <required>true</required>
            </attribute>
            <component-extension>
              <component-tag-namespace>dhaman.custom</component-tag-namespace>
              <component-taglib-uri>/componentLib</component-taglib-uri>
              <method-attribute>
                <attribute-name>targetPage</attribute-name>
                <method-attribute>
                  <attribute-name>targetPage</attribute-name>
                  <method-signature>java.lang.String method()</method-signature>
                </method-attribute>
                <required>false</required>
              </method-attribute>
            </component-extension>
          </component>now My question is how to use it?
    I do not understand this
    action="#{component.handleTargetPage}" Do you mean that i will create amanaged bean "component" and add a methos "handleTargetPage"??
    Edited by: ta**** on Mar 9, 2011 1:58 PM
    Edited by: ta**** on Mar 9, 2011 2:00 PM
    Edited by: ta**** on Mar 9, 2011 2:01 PM

  • Access InputText Value in Declarative Component

    Hi,
    I have created a declarative component that contains an inputText component:
    <af:inputText label="#{attrs.ucitLabelText}" id="dc_it1" contentStyle="text-transform:uppercase;" converter="StringAsUppercase"/>
    When I use the declarative component on a page, is there any way to easily access the value of its inputText through the page backing bean? The declarative component is bound to the page, but what method can I use to access the inputText value?
    Thanks,
    Brad

    Thanks.
    I also figured out that I can simply do the following:
    When creating the declarative component...
    - Add an attribute to the declarative component (let's call it "inputValue")
    - Assign the inputValue attribute to the inputText value.
    When using the declarative component on a page...
    - Create a String property in the page's backing bean
    - Assign that property to the declarative component's inputValue attribute
    Then I can access the backing bean property to get the inputText value.
    Brad

  • Declarative Component : UploadedFile Isssue for multiple file Upload case.

    Hi,
    I have made one declarative component for the multiple file upload case; where i have add button that dynamically adds af:inputFile component to the popup dialog and similarly delete button to dynamically delete the selected inputFile component. Everything work fine such as:
    1. add button adds the inputfile component properly and delete does the same.
    2. upload of Multiple files also works fine. ( I keep the uploadedFile in the java.util.Map which is the pageFlowScope and once, Dialog box ok/cancel is clicked, i clear everything back).
    IT WORKS GREAT WHEN:
    User hit 5 times add button if they want to upload 5 images. and do upload for all the 5 inputFile components . (Add or Delete button should not be clicked after any upload , but before you can.)..
    THE ONLY PROBLEM IS WHEN:
    1. user uploaded; say 2 images but not yet clicked in the ok/cancel button yet... they are still in the upload dialog ..and hit ADD button again.
    2. After that user uploads say another file/image and now UploadedFile's getInputStream() returns null, length becomes 0 for all the other uploadedFile except this newly uploaded file.
    Now, here is the thing, i wrote my own customUplodedFile class which is just a wrapper and it return getInputStream() from this class and length from this class and it is working.... But i am not sure why does the uploadedFile loses it's value...
    import org.apache.myfaces.trinidad.model.UploadedFile;
    public interface ICustomUploadedFile
      extends Serializable, UploadedFile
      public String getFilename();
      public String getContentType();
      public long getLength();
      public Object getOpaqueData();
      public InputStream getInputStream();
      public void dispose();
    ====================
    public class CustomUploadedFile
      implements ICustomUploadedFile, Serializable
      private transient UploadedFile mUploadedFile;
      private transient InputStream mInputStream;
      private long mLength;
      public CustomUploadedFile()
      public CustomUploadedFile(UploadedFile pUploadedFile)
        this.mUploadedFile = pUploadedFile;
        this.mLength = pUploadedFile.getLength();
        try
          this.mInputStream = pUploadedFile.getInputStream();
        catch (IOException e)
          e.printStackTrace();
      public String getFilename()
        return mUploadedFile.getFilename();
      public String getContentType()
        return mUploadedFile.getContentType();
      public long getLength()
        return mLength;
      public Object getOpaqueData()
        return mUploadedFile.getOpaqueData();
      public InputStream getInputStream()
        return mInputStream;
      public void dispose()
        mUploadedFile.dispose();
    } Now, my questions are:
    1. Is there a way i could follow to not to lose the UploadedFiles's inputStream and length by not using my wrapper class but in a standard way/best way.
    2. I am not happy although it works because it is not making sense to me at all.....Why does the wrapper working though when i have transient variables; like UploadedFiles... and it's transient variables are lost why not mine.
    I am totally confused at this stage.. Need your help.
    Thanks

    any one??

  • How to use my Declarative Component in query component ???

    Hi everybody,
    I want to change inputDate in query component to my declarative component for Date fields. I did not find any way except implementing the Model of Query component so read "Web User Interface Developer’s Guide for Oracle Application Development Framework 11g Release 1 (11.1.1) " document and use the ADF Faces Demo Application. now I don't know can I change type of search component to my declarative component in DemoQueryBean class ??
    the code of oracle.adfdemo.view.query.rich.DemoQueryBean that I changed is :
    public static final ComponentType myDatecomponent=ComponentType.valueOf("myDate");
    private void _createPageDef()
    _pageDef = new DemoPageDef();
    _pageDef.addAttributeDef("Ename",
    "Employee Name",
    "Full name of the Employee [Last Name, First Name]",
    String.class,
    persianDate,
    false, null, true, true, true);
    As you can see I changeed type of Employee Name component to my Component but I see below exceptions :
    ]] Root cause of ServletException.
    java.lang.ExceptionInInitializerError
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
         at java.lang.Class.newInstance0(Class.java:355)
         Truncated. see log file for complete stacktrace
    java.lang.IllegalArgumentException: No enum const class oracle.adf.view.rich.model.AttributeDescriptor$ComponentType.myDate
         at java.lang.Enum.valueOf(Enum.java:192)
         at oracle.adf.view.rich.model.AttributeDescriptor$ComponentType.valueOf(AttributeDescriptor.java:121)
         at oracle.adfdemo.view.query.rich.DemoQueryBean.<clinit>(DemoQueryBean.java:52)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         Truncated. see log file for complete stacktrace
    >
    I think these exceptions happend because of there is not any constant of AttributeDescriptor$ComponentType in ComponentType class for myDate component.
    I try to create a class and extends ContentType and add my component type to it but I can't. is there any way for solving this problem ?
    please help me :(
    Thanks.

    Hi,
    saying it this way: There is no native option to do this. Since I never tried hacking into the framework classes, I can't say if there is a glimpse of hope for you
    Frank

  • Declarative component stops working after taskflow-call-in-popup

    Hi!
    JDev 11.1.1.3.0
    I need a component, much like the commandToolbarButton, but I have the requirement that the user should still be able to select from the popup even if the button is disabled.
    So I created a declarative component, combining two buttons and a popup with a menu in a panelGroupLayout. The one button, the mainButton, actually executes the action, the other (with an icon only) opens a menu in a popup.
    The user selects an item from the popup, the component then PPRs the main button in code to display the user's choice in the main buttons text.
        <af:panelGroupLayout layout="horizontal" id="${component.id}_layout">
          <af:commandToolbarButton id="mainButton" text="#{component.mainButtonText}"
                                   clientComponent="true" disabled="#{!component.enabled}"
                                   partialSubmit="true"
                                   actionListener="#{component.mainButtonPressed}"/>
          <af:commandToolbarButton id="menuButton" icon="/images/arrowDownComboBox.png"
                                   partialSubmit="true" disabled="#{!component.enabled}">
            <af:showPopupBehavior alignId="mainButton" align="afterStart" popupId="commandPopup"/>
          </af:commandToolbarButton>
          <af:facetRef facetName="extensionButton"/>
          <af:popup id="commandPopup" contentDelivery="lazyUncached" childCreation="immediate"
                    clientComponent="true">
            <af:menu id="commandMenu" clientComponent="true" binding="#{component.commandMenu}"/>
          </af:popup>
        </af:panelGroupLayout>That works fine ... until the user opens a taskflow in a popup.
    I have a bounded taskflow, jspx-based, opened by a button with an action that navigates to a taskflow-call activity in a modal dialog. The user opens the taskflow, does what needs to be done, then closes the dialog.
    Still fine.
    But, after the dialog has closed, when the user selects an item from the popup menu of my declarative component, I suddenly get an NPE:
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <<RegistrationConfigurator><handleError> Server Exception during PPR, #1
    java.lang.NullPointerException: UIComponent is null
         at org.apache.myfaces.trinidad.component.UIXComponent.addPartialTarget(UIXComponent.java:498)
         at org.apache.myfaces.trinidadinternal.context.RequestContextImpl.addPartialTarget(RequestContextImpl.java:513)
         at com.ge.med.web.components.button.CommandComboButton.refreshMainButton(CommandComboButton.java:213)
         at com.ge.med.web.components.button.CommandComboButton.setSelectedCommand(CommandComboButton.java:177)
         at com.ge.med.web.components.button.CommandComboButton.commandItemPressed(CommandComboButton.java:243)
         at com.ge.med.web.components.button.CommandComboButton.processAction(CommandComboButton.java:129)
         at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)To track the problem down, I have pointed the binding attribute of the declarative component to a property in a session-scoped bean, to see what the component looks like that is set, what the children and grand children are, and who the parent is.
    This prints:
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <Setter called: DemoComboButtonComponent[oracle.adf.view.rich.component.fragment.UIXInclude$ContextualFacesBeanWrapper@1762a87, id=demoAdd]>
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <Parent: RichPanelGroupLayout[UIXFacesBeanImpl, id=cbll1]>
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <Children: [RichPanelGroupLayout[UIXFacesBeanImpl, id=demoAdd_layout]]>
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <Grand kids: [RichCommandToolbarButton[UIXFacesBeanImpl, id=mainButton], RichCommandToolbarButton[UIXFacesBeanImpl, id=menuButton], RichPopup[UIXFacesBeanImpl, id=commandPopup]]> That's fine. But when I add the same debug code to my setSelectedCommand() method (which is called when the user selects an item from the popup's menu), I get:
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <I am: DemoComboButtonComponent[oracle.adf.view.rich.component.fragment.UIXInclude$ContextualFacesBeanWrapper@ba2b1c, id=demoAdd]>
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <My Parent: null>
    <26.04.2011 19:07 Uhr MESZ> <Notice> <Stdout> <BEA-000000> <My Children: []> The empty children property explains the NPE. This NPE only happens when the user selects an item from the popup after the dialog has closed.
    Debugging showed that the new DemoComboButtonComponent is created during the restoration of (tree) state after the closing of the modal dialog. But why has it no parent? And where are the kids?
    Could the binding of the declaratice component to a session-scoped bean be the problem? Somehow prevent the state mechanism from re-building the UI component tree correctly?
    I am at the end of my wits.
    Any help is appreciated!
    Sascha

    Hi Frank,
    no, not yet. I had the feeling that it's me who is doing something wrong. Declarative components are pretty common, right? So are taskflow calls in dialogs. Someone should have noticed if there's a bug in the framework, right?!
    But I changed the scope of the bean (to backing scope and request scope) that the declarative component is bound to and I still get the error.
    I will try to create a simpler test case, and if I can reproduce with that, then I will file a bug, if there's no one that can explain the phenomenon.
    Sascha

  • Tinymce declarative component not working when added with PPR

    I have a declarative component that i exposed in a resource catalog.
    This component uses <af:resource> to inject javascript in the page.
    the problem that i have is when in editing mode, and you add the component. the components <af:resource> is not yet injected and i have to manually refresh my browser to see the effect.
    I am trying to integrate TinyMCE as a component.
    This problem occurs because when you click the add button it does a PPR.
    If i load a page where my component was already on, I don't have this problem.
    I also tried a refresh commandButton, but because forcePPR is configured in the web.xml and I may not change this, it is not executed correctly.
    Any ideas to solve this, or a workaround would be helpful?
    thanks in advance
    <af:group id="dc_g1">
          <af:commandButton text="refresh"
                            actionListener="#{backingBeanScope.tinymceBean.addScripts}"/>
          <af:resource type="javascript" source="/tiny_mce/tiny_mce.js" />
          <af:resource type="javascript" source="/tiny_mce/config.js" />
          <af:inputText simple="true" value="#{attrs.value}" styleClass="AFStretchWidth"
                        id="dc_it1" rows="2" />
          <af:resource type="javascript" text="initTiny();" />
        </af:group>

    Try collecting a Process Monitor trace https://technet.microsoft.com/en-us/sysinternals/bb896645 to check what is the Access is being Denied on.
    Windows Store Developer Solutions, follow us on Twitter:
    @WSDevSol|| Want more solutions? See our blog

  • JSF Declarative Component - Using a method?

    Hello. I'm creating a declarative component that has a submit button. I want the submit button to be defined, but I want the person using the component to define the action (ex, they specify which method from an AM to execute) How can I do this? I tried defining a method and setting the buttons action to comp.whatever. However, when the person defines the button and points the method to the binding layer, it can never located the method.
    Thanks, Graeme.

    Hi Shay, thanks for the response. I have read the tutorial. The only difference is in the tutorial it's executing a method on the view object. I need to execute a method on my application module. I defined it on my declarative component as:
    <af:commandButton text="commandButton 1" id="dc_cb1"
    actionListener="#{comp.submitRegistrationForm}"/>
    As this kind of method attribute
    <method-attribute>
    <attribute-name>
    submitRegistrationForm
    </attribute-name>
    <method-signature>
    void submitRegistrationForm(oracle.jbo.ViewObject)
    </method-signature>
    <required>
    false
    </required>
    </method-attribute>
    Then I dragged in my custom component and defined my submit button as #{bindings.sendRegistration.execute} The sendRegistration is a method in my AM. I created a method binding for this as
    <methodAction id="sendRegistration"
    InstanceName="RegistrationAMDataControl.dataProvider"
    DataControl="RegistrationAMDataControl"
    RequiresUpdateModel="true" Action="invokeMethod"
    MethodName="sendRegistration" IsViewObjectMethod="false"
    ReturnName="RegistrationAMDataControl.methodResults.sendRegistration_RegistrationAMDataControl_dataProvider_sendRegistration_result">
    <NamedData NDName="vo" NDValue="#{bindings.FirstName.attributeValue}"
    NDType="oracle.jbo.ViewObject"/>
    </methodAction>
    However, everytime I hit the button I get an error the method does not exist. Method not found: UserRegistrationFormComponent[oracle.adf.view.rich.component.fragment.UIXInclude$ContextualFacesBeanWrapper@1572ca2, id=urf1].SubmitRegistrationForm(javax.faces.event.ActionEvent)
    Is it possible to call this to my AM?
    Thanks.

  • Problem attaching Declarative component library.

    I created a declarative component, deployed the jar file and created the FileSystem connection.
    When I try to add it to my project I don't receive any message but I don't see any result and the component is not visible in the palette.
    Why ?
    I've a jar file containing the declarative component I was able to attach to a project but not to another one.
    Could someone explain me :
    . how to attach ?
    . how to verify if it was correctly attached ?
    What's wrong ?
    Tks
    Tullio

    Hi,
    "Is this an ADF Library Jar tha tyou are creating?" ---> Yes
    "If so please make sure that the Project and package names are unique in both the project where you are creating it and in the project wher eyou are attaching it. " --> Yes
    "To see if the jar is correctly attached, go to the Project Properties -> Libraries an dClasspaths section and see if you can find a library called ADF Library." ---> I don't see any library with such name (in other "working" projects I saw a library called Library1 in Project specific libraries).
    "Also, you can find any messages in the Log in the message panel." --- > No messages at all
    "If your project is initialized for business components then go to Tools -> Preferences -> Business Components -> General
    Check the option - Show Imported ADF Library components in data control palette option and then try." ---> Done
    Tks
    Tullio

  • Declarative Component inside of an Iterator

    I am building a custom declarative component, and that's how I am using it from the main page:
    <af:iterator var="row" value="#{viewScope.manageMinorCrBB.linesForAddGroup}" id="it1">
    <af:panelGroupLayout id="id13" layout="horizontal" halign="left">
    <af:commandButton id="cmdAddLine" text="Add" actionListener="#{viewScope.manageMinorCrBB.addLines}" />
    <af:commandButton id="cmdRmvLine" text="remove" actionListener="#{viewScope.manageMinorCrBB.removeLines}" />
    <!-- THIS TAG DOESN'T WORK !!!!! -->
    <af:declarativeComponent id="dynfld1"
    viewId="/project/dynamicFieldComponent.jspx"
    rows="4" maxColumns="3"
    optionalFields="#{row.optionalFields}"
    model="#{row.model}"
    selectedOptionalField="#{row.selectedOptionalField}"
    postButtonTitle="Save"
    postListener="viewScope.manageMinorCrBB.saveAndRefreshAction"
    required="false" />
    </af:panelGroupLayout>
    </af:iterator> <!-- Component Tab to show OutOfScoped and Scopped DCCs
    Information will be shown based in Drools Logic -->
    <!-- THIS TAG WORKS !!!!! -->
    <af:declarativeComponent id="dynfld2"
    viewId="/project/dynamicFieldComponent.jspx"
    rows="8" maxColumns="2"
    optionalFields="#{viewScope.manageMinorCrBB.lineFind.optionalFields}"
    model="#{viewScope.manageMinorCrBB.lineFind.model}"
    selectedOptionalField="#{viewScope.lineFind.selectedOptionalField}"
    postButtonTitle="Search"
    postListener="viewScope.manageMinorCrBB.searchAction"
    required="true"
    />
    and that's a fragment of my DCC:
    If I call the components individually is working but If I put my component inside of an iterator I can't get the component's attributes by using this method:
    RichDynamicDeclarativeComponent _this = (RichDynamicDeclarativeComponent )
    getValueObject("#{component}",RichDynamicDeclarativeComponent .class);
    What am I doing wrong?, should I use the same "#{component}" expression???
    Thank you, I would really appreciate your help!
    Maik

    Hi,
    try af:forEach. the af:iterator stamps it children and does not create component instances
    Frank

  • Create custom declarative component like container

    Hi all,
    I'm using Jdev 12c.
    I wanna create a custom declarative component like this:
    container.jsf :
    <af:panelGroupLayout id="#{attrs.Name}_VIEWPORT" layout="scroll" binding="#{attrs.Binding}"
                             inlineStyle="position:absolute;width:#{attrs.ViewportWidth}px;height:#{attrs.ViewportHeight}px;top:#{attrs.ViewportY}px;left:#{attrs.ViewportX}px;border:1px solid;background:#c6c6ff;z-index:#{attrs.ZIndex};">
            <af:panelGroupLayout id="#{attrs.Name}" layout="scroll"
                                 inlineStyle="position:absolute;width:#{attrs.Width}px;height:#{attrs.Height}px;">
            </af:panelGroupLayout>
        </af:panelGroupLayout>
    <af:xmlContent>
            <afc:component>
                <afc:description/>
    </af:xmlContent>
    I use this custom component to group some child components like this:
    <abc:container ...>
         <af:inputText ... />
         <af:inputText ... />
    </abc:container>
    But the things is in Java code, I cannot get RichInputText components :
    this is my function:
        private void getFacetAndChild(UIComponent parent) {
            Iterator childrens = parent.getFacetsAndChildren();
            while (childrens.hasNext()) {
                UIComponent child = (UIComponent)childrens.next();
                System.out.println("Log child >> " + child);
                getFacetAndChild(child);
    this function only print the second RichPanelGroupLayout.
    Any ideas to help me to get all RichInputText ?
    Thanks and Best Regards!

    Hi All,
    I found the solution. Just add one facet to Custom Container
    <af:panelGroupLayout id="#{attrs.Name}_VIEWPORT" layout="scroll" binding="#{attrs.Binding}" 
                             inlineStyle="position:absolute;width:#{attrs.ViewportWidth}px;height:#{attrs.ViewportHeight}px;top:#{attrs.ViewportY}px;left:#{attrs.ViewportX}px;border:1px solid;background:#c6c6ff;z-index:#{attrs.ZIndex};"> 
            <af:panelGroupLayout id="#{attrs.Name}" layout="scroll" 
                                 inlineStyle="position:absolute;width:#{attrs.Width}px;height:#{attrs.Height}px;"> 
                           <af:facetRef facetName="child"/>
            </af:panelGroupLayout> 
        </af:panelGroupLayout> 
    <af:xmlContent> 
            <afc:component> 
                <afc:description/> 
    </af:xmlContent> 
    And the used page:
    <abc:container ...>
         <f:facet name="child">
              <af:inputText ... />
              <af:inputText ... />
         </f:facet>
    </abc:container>
    Maybe this solution will help others to create a custom container
    Thanks and Best Regards!

  • Unable to read view Id of Declarative Component from "var" of af:iterator

    Hi,
    I am facing a weird issue where when i assign "var" of af:iterator to the view Id of declarative component, it is saying "<DynamicIncludeTag> <getViewId> Encountered null from the viewId expression: #{row}"
    And Page is showing blank.
    My JSPX code is as follows :
    <af:iterator value="#{pageFlowScope.stageBean.pathList}" var="row">
    <af:outputText value="#{row}" id="ot1"/>
    <af:declarativeComponent viewId="#{row}"/>
    </af:iterator>
    And code snippet for getter in Java bean is as follows:
    public List<String> getPathList()
    List<String> pathList = new ArrayList<String>();
    pathList.add("/Test.jspx");
    return pathList;
    The weird thing here is output text is printing the path /Test.jspx but declarative component is not recognizing it. Its showing blank page and in logs, error says "Encountered null from the viewId expression: #{row}"
    If i remove #{row} from viewId and manually give like viewId = "/Test.jspx" , its displaying the page correctly.
    Can anyone please help me solve this issue?
    Regards,
    Rakesh.

    http://stackoverflow.com/questions/12183735/adf-unable-to-read-view-id-of-declarative-component-from-var-of-afiterator

  • Dynamic declarative component won't work properly within table row

    Hi guys,
    I built a dynamic declarative component which basically consists of an af:inputText surrounded by a af:panelLabelAndMessage tag.
    The component works fine until I put it inside a table column, then none of the attribute values get set.
    The problem seems to be related to the table row binding #{row.binding.Name.inputValue} , if I use a regular binding #{binding.Name.inputValue} it works ok.
    The declarative components attribute is defined as
    <attribute>
        <attribute-name>kbez</attribute-name>
        <attribute-class>java.lang.Object</attribute-class>
    </attribute>and is used as the inputText's value attribute
    <af:componentDef var="attrs" componentVar="component">
        <af:panelLabelAndMessage label="#{attrs.label}" id="dc_plam1"
                                 for="dc_it1" labelStyle="white-space:nowrap;"
                                 showRequired="#{attrs.showRequired}"
                                 rendered="#{attrs.rendered}">
            <af:inputText id="dc_it1" value="#{attrs.kbez}"
                          autoSubmit="true" immediate="false" ...>The component inside a table column is set like this
    <af:declarativeComponent viewId="/WEB-INF/ikb.adf.kreda.basis/mitarbeitersuche/ddc/mitarbeiterLOV.jsff"
                             id="ddc1" label="Mitarbeiter"
                             kbez="#{row.bindings.Kbez.inputValue}"/>My JDeveloper version is 11.1.1.5.
    Am I doing it wrong or is this a bug?
    Any help is appreciated.
    Thank you,
    Achim
    Edited by: Achim Rosenfeld on Mar 8, 2013 8:41 AM

    Hi,
    +#{row.binding.Name.inputValue} , if I use a regular binding #{binding.Name.inputValue} it works ok.+
    Don't think that #{binding.Name.inputValue} works okay in a table because it doesn't stamp the component per row. Actually I don't know if we support dynamic declarative components in a stamped environment (table). I know though that we don't for taglib declarative components in this context.
    Reason why it doesn't work: Tables are stamped at runtime, which means that for better performance, only the generated HTML is reused for each row with different data - not the component. Your component requires itself to be re-created for each row so it can re-read the attribute again. This is not the case in a stameped environment
    Solution: For your particular use case I don't think that a dynamic declarative component is needed as you can add the construct (af:inputText surrounded by a af:panelLabelAndMessage) directly into an af:column tag. The declarative component makes more sense for reuse of layout areas (e.g. custom tabs) that are iterated within an af:forEach (in which case instances of the decalarative components would be created).
    Bottom line: tables stamp their components and as such the attribute property exposed on a DDC doesn't seem to be called for each row, which is by design. This can be considered a bug if there is a use case demanding for a DDC in a table. If this is a requirement for you (and you can't directly add the components to the af:column tag) feel free to file this as a service request with customer support (required a support contract) so development can have a look if the requirement is feasible to implement.
    Frank

  • Binding property of a Panel header in Declarative Component

    Hi,
    I created a Custom Declarative component, which has a panel header, i wanted to expose the binding property of the panel header so that the users can add partial triggers to it programaticaly,
    so i added a attribute of type RichPanelHeader, and used it in bindings of the panel header, but i am getting following error,
    Unserializable value:RichPanelHeader[UIXFacesBeanImpl, id=dc_cnt_ph1] for key:PropertyKey[phBinding] in console,
    and the value in bean is null.
    the code used in Panel Header of Declarative component,
    <af:panelHeader text="#{attrs.phScreenHdrTxt}" id="dc_cnt_ph1"
                          helpTopicId="#{attrs.phScreenHdrHelpTopicId}"
                          rendered="#{attrs.phScreenHdrRendered}"
                          inlineStyle="#{attrs.phScreenHdrInlineStyle}"
                          partialTriggers="#{attrs.phScreenHdrPartialTrigger}"
                          binding="#{attrs.phBinding}">
          <attribute>
              <attribute-name>phBinding</attribute-name>
              <attribute-class>oracle.adf.view.rich.component.rich.layout.RichPanelHeader</attribute-class>
            </attribute>   code used in the consumer app.
    <app:Container id="c2" phScreenHdrTxt="tab1" phBinding="#{TestBean.panelHeader}">
        <f:facet name="body">
          <af:group id="g1">
            <af:outputText value="Tab1" id="ot1"/>
            <af:commandButton text="Refresh Panel Header" id="cb1"
                              actionListener="#{TestBean.refreshPh}"/>
          </af:group>
        </f:facet>
      </app:Container>
    public class TestBean  implements Serializable{
      private RichPanelHeader panelHeader;
      public void refreshPh(ActionEvent actionEvent) {
        panelHeader.setText("Changed");
        AdfFacesContext.getCurrentInstance().addPartialTarget(panelHeader);
      public void setPanelHeader(RichPanelHeader panelHeader) {
        this.panelHeader = panelHeader;
      public RichPanelHeader getPanelHeader() {
        return panelHeader;
    }is there any solution or way to expose the binding property of any component in a custom declarative component?

    Hi,
    as a last resort, try javax.faces.component.UIComponent as the component class. It seems that none of the UI components implements serializable. javax.faces.component.UIComponent is the JSF base class that they all use.
    Let me know if this works. If not, I think I have another option that mayl do
    Frank

Maybe you are looking for

  • Editing the Customer Address using Open Interface

    Hi All, The requirement is to edit the address details(postal codes) of the customer using Open Interface and not the APIs. They are insisting on using open interface as the Vertex validation(Taxation rules) is taken care only by Open Interface. Will

  • Creating spreadsheet with changing values

    I am trying to create a spreadsheet where the result depends on the value of 2 options selected. Option 1 is a list of different TV manufactures. Option 2 will provide a list of model numbers depending on which manufacturer was chosen in option 1 and

  • MBA Questions

    I've had the MBA for about a month and a half, and I have a few questions. 1. My number of battery cycles is 22, and battery health is 95%. Is this normal? I'm not sure I'm practicing the correct battery habits. 2. I want to try out a basic flight si

  • Dont understand what is wrong in code

    Task of my code that movieclip added on stage, change its size - height when change size of browsers(player) window thus height movieclip = height rowsers(player) window. That is my code: package import flash.display.*; import flash.display.Sprite; i

  • Nikon D300 NEF Lightroom Issue

    Hello, I was on a photo shoot this morning and went to import my NEF's and basic JPG's into Lightroom. For some reason lightroom wont recognize the files. ANy idea why? Photoshop will and so wil ACR but I would like to ad them into my lightroom catal