Question about code corner Example#33: How-to open a Bounded Task Flow in a new Browser Tab

Hello All,
I am implementing example #33 in code corner series Oracle ADF Code Corner</title><meta name="Title" content="Oracle ADF Code Corner"><me…
Every thing is going fine, but there is a comment in the java code that I don't understand.
public void onLaunchForEdit(ActionEvent actionEvent) {    
      //access the ADF binding layer and access the tree binding that
      //populates the table
        BindingContext bctx = BindingContext.getCurrent();
        BindingContainer bindings =
                               bctx.getCurrentBindingsEntry();   
        //access the tree binding defined in the ADF binding layer
        JUCtrlHierBinding model =
               (JUCtrlHierBinding) bindings.get("DepartmentsView1");
        //get the current selected row key from the iterator binding
        //referenced from the table binding (tree binding). Of course,
        //I could have used the iterator name directly in the binding
        //lookup, but looking up the tree binding instead allows to
        //change the tree binding iterator dependency to a later point
        //in time without breaking this functionality. Its all about
        //"weak" dependencies that give you flexibility when coding ADF
        String rwKeyString =
               model.getDCIteratorBinding().getCurrentRowKeyString();
        launchWindow(rwKeyString);
What does this comment mean?
         //but looking up the tree binding instead allows to
        //change the tree binding iterator dependency to a later point
        //in time without breaking this functionality. Its all about
        //"weak" dependencies that give you flexibility when coding ADF
Is this a contrast to this line of code?
JUCtrlHierBinding model =
               (JUCtrlHierBinding) bindings.get("DepartmentsView1");
I mean in this line of code we hard coded the tree binding name from the page Def? why getting the tree binding name is a best practice while getting the iterator name is not?

What does this comment mean?
         //but looking up the tree binding instead allows to 
        //change the tree binding iterator dependency to a later point 
        //in time without breaking this functionality. Its all about 
        //"weak" dependencies that give you flexibility when coding ADF 
Is this a contrast to this line of code?
JUCtrlHierBinding model = 
               (JUCtrlHierBinding) bindings.get("DepartmentsView1"); 
Yes, it's exactly this line of code the comment is referring to. If you look at the bindings of a page you see three parts: on the left he bindings, in the middle the executables and on the right side the data control. The statement
JUCtrlHierBinding model = 
               (JUCtrlHierBinding) bindings.get("DepartmentsView1");
access the binding, the tree binding to get the data. if you use the iterator which named 'DepartmentsView1Iterator' you are accessing the executable, the iterator itself. The comment now tell you that if you access the data via the tree binding, that you can change the underlying iterator to point to different data. This you can do without the need to change the code in the been, whihc is good as you (or we all) tend to forget that we have code working on the iterator, so changing things in the bindings will break the application.
Timo

Similar Messages

  • How to add many bounded task flow just on one only .jspx page?

    Dear all
    I will explain you what I do and What I want to do.
    I created one jsf page template called "baseTemplate". It contains only one panelSpliter with horizontal layout . In the first face I created 10 commandLinks as a menu. the second facet contains the facet ref.
    My task is now to create 10 task flows.
    What i do is:
    1- create bounded task flow name it "taskFlow1" and add all the views and page navigations that I want.
    2- double click the views and create them as page fragment and design the layout.
    3- create .jspx page name "task1.jpx" based on "baseTemplate".
    4- dragging and dropping "taskFlow1" into "task1.jspx" as a region
    5- repeating steps from 1 to 4 with "task2.jspx" till "task10.jspx"
    in this way i created 10 "jspx" pages for each task flow
    What i want to do is:
    I want to create just one and only one ".jspx" page and drag all task flows on it. And when clicking on any command link from the menu , the corresponding task flow is invoke.
    Is this a way to do this.
    Thank you in advance.

    of course, there is.simply in the unbounded Task flow drag your task flow as task flow call and specify the outcome, and make the action of your command link
    the outcome you specify, of course you will navigate to the default activity of the bounded task flow also you could open your task flow as lightweight dialog
    as frank do in his example

  • Question: about to purchase ipad air - how do I migrate contacts,bookmarks,and address books from either an iMac or old macbook?

    Question: about to purchase ipad air - how do I migrate contacts,bookmarks,and address books from either an iMac or old macbook?

    Set up iCloud on both devices
    How to set up iCloud on all your devices
    http://www.apple.com/icloud/setup/

  • UI Shell - how to allow ADF Library Bounded Task Flow to close itself

    Hi Richard
    Further to my other post, we're having lots of fun with the UI Shell, it's making mockups very easy.
    Question for you though based around the functionality defined in the UI Shell whitepaper. Say we've created our UI Shell application, and rather than wanting to create the bounded task flows in the app (ie.first, second, third), we create them as standalone bounded task flows deployed to ADF Libraries, and imported into our app separately.
    In the UI Shell examples bounded task flows are opened & closed via the UI Shell's own components (say the navigation page items or toolbar buttons), that call the methods in the Launcher bean (_launchActivity & closeCurrentActivity). It's fairly simple to rewrite the launcher helper methods in the launcher bean to call an imported ADF Library bounded task flow to open it as an activity, just referencing the correct task-flow.xml file.
    However as you know a bounded task flow has a "Default Activity" entry point and one or more "Task Flow Return" exit points. What I haven't been able to work out is how when the bounded task flow exits via a task flow return, can we call the closeCurrentActivity method in the Launcher bean? The UI Shell code examples demonstrate closing a bounded task flow by menu options/or similar outside the bounded task flow in the UI Shell, but it would seem reasonable if the bounded task flow exited via a "Task Flow Return" we should be also able to close the activity tab too.
    (....and as extension, before we even do that potentially call the checkState/isDirty() method to stop the user closing the activity too, but again driven by the bounded task flow attempting to exit).
    I could imagine inserting code into the bounded task flow finalizer to close the activity tab, but this pushes the UI Shell tab activity management logic into our standalone ADF Library bounded task flows which isn't ideal, especially if we want to later reuse them in another app which doesn't use the UI Shell.
    Any suggestions welcome.
    Thanks & regards,
    CM.

    And we're back again.... what's a couple months between friends?
    So it turns out after testing our app (d@mn, so close) that we've hit a bug with this approach.
    Our current app allows one BTF to be open in the UI Shell at any one time. Our menu options automatically open one BTF at a time by the user (max one open), and close the previous BTF. However we have some "special" BTFs that require the user to explicitly close the BTF, which in turn makes use of the regionNavigationListener solution I described earlier in this post.
    However we discovered a bug when we do a complete cycle of the 15 embedded regions within the UI Shell.
    Say we:
    1) Open a normal BTF in region 0
    2) Open another normal BTF in region 1 (our solution automatically closes the previous BTF)
    3) We then open another BTF (again the previous BTF is closed) in region 2, yet this a "special" BTF requiring the user explicitly to close it. Upon the user closing the BTF - this results in the regionNavigationListener being called and the removeTab() method called to close down the BTF in the UI Shell
    4) The user then open/closes multiple normal BTFs, one by one, rotating through regions 3, 4, 5 .... eventually back to 1 again
    5) Then the bug occurs - on opening any BTF back in region 2 (as part of the complete cycle of all regions), the tab for the region 2 opens, correct title, and via debugging the Tab.class has all the right settings including taskFlowId, but the tab is incorrectly empty
    doh!
    I've managed to track a symptom of the problem down that may explain what's happening.
    Each time a tab is rendered with a BTF, the Tab classes getBinding() method returns a reference to the binding required for the current BTF. However for some reason on the complete cycle, for "r2" it returns the binding for the previously user-closed BTF from step 3 above, even though we called the TabContext.removeTab() method.
    What I haven't been able to work out is how the bindings get turned on/off dynamically for each BTF being invoked. Presumably for some reason on step 3, the BTF's bindings aren't being correctly removed from r2 even though we called TabContext.removeTab().
    If anybody has any brain waves about what's going on and how to fix this problem, your help appreciated.
    Regards,
    CM.

  • How to pass request parameter to bounded task flow?

    Hi, this is probably a simple question, but just not sure how this should be done. I have a .jspx that contains an ADF region for a bounded task flow. The task flow has a required input parameter, e.g. objectId. I want to be able to pass a request parameter that's sent into the .jspx page to the task flow. For example, Test.jspx?id=123 should pass 123 for the objectId input parameter of the task flow.
    When adding the ADF region to the page, the Edit Task Flow Binding dialog prompted for a value for the objectId input parameter. I wasn't sure what I can put for the value so I just hard-coded something like 123 for now. So in the page definition file, sometihng like the following got added:
        <taskFlow id="testtaskflow1"
                  taskFlowId="/WEB-INF/taskflow/test/test-task-flow.xml#test-task-flow"
                  activation="deferred"
                  xmlns="http://xmlns.oracle.com/adf/controller/binding">
          <parameters>
            <parameter id="objectId" value="123"/>
          </parameters>
        </taskFlow>I'm wondering is there some EL expression I can use for the parameter value that gets the value of the id request parameter passed into the .jspx? Thanks.

    you have to use it like.. #{bean.idValue} and in the getter of the id Value use it like
    private int idValue;
    //setter
    //getter
    public int getIdValue(){
              HttpServletRequest request =
                (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
            int id = request.getParameter("id");
           return id;
    }

  • How to create a page-definition for bounded task-flow?

    I should be able to create a page definition which declare all bindings required for a bounded task flow.
    How do I do it in JDeveloper 11.1.1.2?
    How do I navigate to the page definition when I am in the bounded task flow "Diagram tab"?

    I found out the following:
    1. To create a page-definition file for a bounded task flow
    Right click on the "Default" activity (not a view activity) of the bounded task flow, select "Create Page Definition" from the context menu.
    2. To go the page-definition file for a bounded task flow
    Right click on the "Default" activity (not a view activity) of the bounded task flow, select "Go to Page Definition" from the context menu.
    My new question is:
    In JDeveloper 11.1.1.2, how do I create page-definition for a bounded-task-flow if all activities are view activities (page fragments) ?
    How does JDeveloper I want to create page-definition for the task-flow instead of create page-definition of the page fragment or the page?

  • When you open a new browser tab, underneath the box to type in what you are looking for is the recently visited list. I want to disable or delete this list...how do I get rid of this list???

    When you open a new browser tab, underneath the box to type in what you are looking for is the recently visited list. I want to disable or delete this list...how do I get rid of this list???

    The drop-down list displays items from your History and/or Bookmarks.
    You can control what shows (or nothing at all): Options > Privacy, "Location Bar" section. Options are:
    *History and Bookmarks
    *History
    *Bookmarks
    *Nothing
    See --> https://support.mozilla.com/en-US/kb/Options%20window%20-%20Privacy%20panel
    '''If this reply solves your problem, please click "Solved It" next to this reply when <u>signed-in</u> to the forum.'''
    Not related to your question, but...
    You may need to update some plug-ins. Check your plug-ins and update as necessary:
    *Plug-in check --> http://www.mozilla.org/en-US/plugincheck/
    *Adobe Shockwave for Director Netscape plug-in: [https://support.mozilla.com/en-US/kb/Using%20the%20Shockwave%20plugin%20with%20Firefox#w_installing-shockwave Installing ('''''or Updating''''') the Shockwave plugin with Firefox]
    *Adobe PDF Plug-In For Firefox and Netscape: [https://support.mozilla.com/en-US/kb/Using%20the%20Adobe%20Reader%20plugin%20with%20Firefox#w_installing-and-updating-adobe-reader Installing/Updating Adobe Reader in Firefox]
    *Shockwave Flash (Adobe Flash or Flash): [https://support.mozilla.com/en-US/kb/Managing%20the%20Flash%20plugin#w_updating-flash Updating Flash in Firefox]
    *Next Generation Java Plug-in for Mozilla browsers: [https://support.mozilla.com/en-US/kb/Using%20the%20Java%20plugin%20with%20Firefox#w_installing-or-updating-java Installing or Updating Java in Firefox]

  • How to open links from document library in a new window?

    I have a column called "Links" in document library, i want to open those links in a new window. Please guide me on this how to achieve this.
    Thanks
    Ramanjulu Naidu N

    hi,
    See whether these links help you -
    http://preachingsharepoint.blogspot.com/2012/06/open-document-in-new-window-from.html
    http://stackoverflow.com/questions/5119919/sharepoint-links-how-to-open-in-new-tab-window
    http://www.benramey.com/2011/04/25/opening-all-sharepoint-2010-documents-in-a-new-window/
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/9db08c4a-b53c-419a-84f8-001c194d1311/how-to-open-sharepoint-document-library-pdf-file-in-new-window?forum=sharepointadminlegacy
    http://www.andrewconnell.com/Adding-OpenInNewWindow-option-to-SharePoint-Links-lists
    http://www.uccorner.com/32/sharepoint/sharepoint-open-links-in-new-window/
    Hope this helps!
    MCITP: SharePoint 2010 Administrator
    MCTS - MOSS 2007 Configuring, .NET 2.0
    | SharePoint Architect | Evangelist |
    http://www.sharepointdeveloper.in/
    http://ramakrishnaraja.blogspot.com/

  • How to Call an ADF Bounded Task Flow Located in Another Web Application

    Hi.
    I'm working in JDev 11G TP3.
    I've read the section from the 11G documentation on Working with Task Flow Activities,
    specifically the section 15.5.3 on How to Call an ADF Bounded Task Flow Located in Another Web Application.
    I've followed the instructions but still can not seem to call another task flow in another application correctly.
    Can someone send a small example specifying how the (TaskFlow Reference) section
    should be filled in, and just a general simple outline of process to set the whole process up.
    Thanks

    Your EL for the remote-app-url needs to return something like this
    "http://www.acme.com:80/myapp/faces/adf.task-flow"
    where "http://www.acme.com:80/myapp/faces" is the root of the url you'd normally use to access the remote application.
    I filed two bugs:
    bug 6944247 to improve the documentation
    bug 6944246 to fix the fact that you currently have to specify the 'adf.task-flow' part. You shouldn't need to do that. But doing so for now will get it to work.

  • Best practice question for Bounded task flows

    We are new to Jdeveloper/ADF and I was wondering if we should always try to use a bounded task flow for our applications... is this considered the best way to develop an app? even the small single page ones?
    Thanks in advance.

    Hi,
    let me turn teh question around: How many tools do you have at home beside of a hammer ? In other words, its the problem you need to solve (and use cases are problems) that should determine the use of bounded task flows and its granularity. Note that for each use case the bounded task flow makes a good candidate for delivering it. Doesn't mean that every single page needs to go into its own task flow. For general bounded best practices have a look here
    http://www.oracle.com/technetwork/developer-tools/jdev/adf-task-flow-design-132904.pdf
    Frank

  • How to download blob image, inline to new browser tab or window

    APEX V4.2.3
    I have an interactive report with a blob download column which is set to inline.  When I click on the "download" link the image appears automatically in same window as the APEX application.  How do I download the image into a new browser tab?  I need to squeeze 'target="_blank" ' somewhere but I don't know where as the link structure is hidden.
    Here is the code for my download column in the Interactive Report.
    select
    decode(nvl(dbms_lob.getlength(BLOB_CONTENT),0),0,null,
    '<img style="border: 4px solid #CCC; -moz-border-radius: 4px; -webkit-border-radius: 4px;" '||
    'src="'||
    apex_util.get_blob_file_src('P98_BLOB_CONTENT',image_id)||
    '" height="100" width="100" alt="'||FILENAME||'" title="'||FILENAME||'" />')
    as detail_img,
    from "#OWNER#"."TIS_ATTACHMENTS"
    thanks in advance
    PaulP

    I would suggest
    SELECT ID, NAME,CASE WHEN NVL(dbms_lob.getlength(document),0) = 0
      THEN NULL
      ELSE CASE WHEN attach_mimetype like 'image%'
      THEN '<img src="'||apex_util.get_blob_file_src('P4_DOCUMENT',id)||'" />'
      ELSE
      '<a  target="_blank" href="'||apex_util.get_blob_file_src('P4_DOCUMENT',id)||'">Download</a>'
      end
      END new_img
      FROM TEST_WITH_BLOB

  • Any example for (bounded task flow) popup return value

    I need to know what is the type of popup RETURN VALUE
    any example will be great

    I want to get parameter form popup bounded task flow with NO page fragment (task flow 1) to jsff page from another task flow with page fragment(task flow 2)
    I applied the scenario exist in URL's in first replay and it didn't work
    when I select task flow 1 from inside task flow 2 diagram I found in its inspector page filed called "Dialog Return Value"
    how can I use this field

  • How to pass a parameter to a bounded task flow?

    Hi,
    We are facing issue while passing parameter from a bounded task flow to another bounded task flow and then showing the passed parameter in a jspx page.
    We have a caller task flow with following component:
    1. A jspx page
    - In this jspx we have a text box have its value as #{pageFlowScope.inputvalue}.
    - Also we have a command button which has its "Action" as the control flow that leads to the "called" task flow.
    2. A bounded task flow named "called".
    So, we call the "called" task flow on the button click in the jspx page.
    Also, in called taskflow we have a jspx page where we are using a output label to show the parameter passed from caller task flow to the called task flow.
    We performed the following steps to set the parameter passing from caller task flow to the called task flow.
    1. Select the input text component on the JSF page.
    2. In the Property Inspector, enter a value for the input text component. You can specify the value as an EL expression, for example #{pageFlowScope.inputValue}.
    3. In the Application Navigator, double-click the name of the called task flow to open its diagram.
    4. Click the Overview tab for the called task flow.
    5. Click Parameters and expand the Input Parameter Definition node.
    6. Click the Add icon next to Input Parameter Definition.
    7. In the Name field, enter a name for the parameter, for example, inputParm1.
    8. In the Value field, enter an EL expression where the parameter value is stored and referenced, for example, #{pageFlowScope.inputValue}.
    9. In the Class field, enter a Java class for the input parameter definition. If you leave the Class field empty, its value is by default implicitly set to java.lang.String.
    10. In the editor, open the diagram for the calling task flow.
    11. In the Application Navigator, drag the called ADF bounded task flow and drop it on top of the task flow call activity that is located on the calling task flow. Dropping a bounded task flow on top of a task flow call activity in a diagram automatically creates a task flow reference to the bounded task flow.
    12. In the Property Inspector for the task flow call activity, click Parameters and expand the Input Parameters section.
    13. Enter a name that identifies the input parameter.
    14. Enter a parameter value, for example, #{pageFlowScope.parm1}.
    Now when we try to fetch the value of parameter using #{pageFlowScope.parm1} in the jspx in called taskflow, its not giving the desired value.
    We even tried to set the to and from parameter of the jspx in called askflow. But no success.
    Can anyone let us know if we are doing smething wrong or exact steps to configure passing of parameters to a bounded task flow and retrieving it in a jspx page will also help.
    Thanks in advance.

    Hi Tushar,
    In step# 14, the value should be "#{pageFlowScope.inputValue}" (should be the same as the value in step#2) .
    tushar wrote:
    Now when we try to fetch the value of parameter using #{pageFlowScope.parm1} in the jspx in called taskflow, its not giving the desired value.To display the passed parameter, you should use "#{pageFlowScope.inputValue}"<----- should be the same as the value in step#8
    Regards,
    Rommel Pino

  • How to call an adf task flow in a commandNavigation tab

    Hi,
    I have created an adf task flow, I am able to invoke the same on click of a link.
    Now I have a tab and some sub tabs under it. I want to open this adf task flow on click of one of these sub tabs.
    For this I have added a property of type CommandNavigationItem in parallel with exising subtabs and on the actionListener of this property I am calling the method of the adf task flow.
    But it is not working. When I click on the sub tab created by me I get this error on the logs :
    ADF_FACES-60096:Server Exception during PPR, #1[[javax.servlet.ServletException
    Please help/guide how to solve this issue.

    Hi,
    do you use the XML Menu Model? If so then the task flow must be referenced from a navigaqtion case in the unbounded task flow you turn into the menu model
    Frank

  • How to call page in adfc-config from bounded-task-flow return?

    Hello everybody, I am using JDeveloper 11.1.2.3.0
    I have in my adfc-config some pages and one bounded-task-flow (with pages, not page fragments). I call the bounded task flow from one of my pages but I want that when I return from the bounded-task-flow to redirect the page to another page rather than the page that called it. I dont know if this can be done, but do you have any idea on how to achieve something like this?
    Thank you

    Here is your sample http://tompeez.wordpress.com/2013/06/18/jdeveloper-navigation-after-return-from-bounded-task-flow/
    Timo

Maybe you are looking for