Adf UI Shell

hi when and how do i need to use UI Shell,am in jdeveloper 11.1.1.6.0
Edited by: adf009 on 2013/02/22 3:06 PM

Hi ,
UI shell is predefined template for developing enterprise application.For example suppose if you want to develop ERP application where you have may different type of module.BTW it is just an one example.
It come lot of power.
Thanks
Prateek

Similar Messages

  • Problem running Sample ADF UI Shell Template

    Hi All,
    Jdev : 11.1.1.6.0
    OS : Windows 7
    I am trying to run, test and learn ADF UI shell template.In this regard, I have downloaded the sample from the link below of Oracle Magazine and get the error below. I have successfully installed the schema
    [http://www.oracle.com/technetwork/issue-archive/2012/12-mar/o22adf-1518265.html]
    <19 May, 2013 5:56:40 PM PDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor C:\Users\datta\AppData\Roaming\JDeveloper\system11.1.1.6.38.62.29\o.j2ee\drs\SummitADFUIShell/META-INF/weblogic-application.xml of module SummitADFUIShell. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
         at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:161)
         at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:323)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:409)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:759)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:768)
         at weblogic.application.ApplicationDescriptor.getWeblogicApplicationDescriptor(ApplicationDescriptor.java:324)
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:181)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationForAppDeployment(MBeanConverter.java:67)
         at weblogic.management.deploy.internal.MBeanConverter.setupNew81MBean(MBeanConverter.java:315)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.compatibilityProcessor(ActivateOperation.java:81)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.setupPrepare(AbstractOperation.java:295)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:97)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: com.bea.xml.XmlException: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86c6a417(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:54)
         at com.bea.staxb.runtime.internal.RuntimeBindingType$BeanRuntimeProperty.setValue(RuntimeBindingType.java:539)
         at com.bea.staxb.runtime.internal.AttributeRuntimeBindingType$QNameRuntimeProperty.fillCollection(AttributeRuntimeBindingType.java:381)
         at com.bea.staxb.runtime.internal.MultiIntermediary.getFinalValue(MultiIntermediary.java:52)
         at com.bea.staxb.runtime.internal.AttributeRuntimeBindingType.getFinalObjectFromIntermediary(AttributeRuntimeBindingType.java:140)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalBindingType(UnmarshalResult.java:200)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalDocument(UnmarshalResult.java:169)
         at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:65)
         at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:150)
         ... 27 more
    Caused by: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86c6a417(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.GeneratedMethodAccessor135.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:48)
         ... 35 more
    .>
    <19 May, 2013 5:56:40 PM PDT> <Error> <Deployer> <BEA-149605> <Failed to create App/Comp mbeans for AppDeploymentMBean SummitADFUIShell. Error - weblogic.management.DeploymentException: Unmarshaller failed.
    weblogic.management.DeploymentException: Unmarshaller failed
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:193)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         Truncated. see log file for complete stacktrace
    Caused By: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86c6a417(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.GeneratedMethodAccessor135.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         Truncated. see log file for complete stacktrace
    >
    <19 May, 2013 5:56:40 PM PDT> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1369011400427' for task '0'. Error is: 'weblogic.management.DeploymentException: Unmarshaller failed'
    weblogic.management.DeploymentException: Unmarshaller failed
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:193)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         Truncated. see log file for complete stacktrace
    Caused By: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86c6a417(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.GeneratedMethodAccessor135.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         Truncated. see log file for complete stacktrace
    >
    <19 May, 2013 5:56:40 PM PDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application 'SummitADFUIShell'.>
    <19 May, 2013 5:56:40 PM PDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.management.DeploymentException: Unmarshaller failed
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:193)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         Truncated. see log file for complete stacktrace
    Caused By: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86c6a417(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.GeneratedMethodAccessor135.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         Truncated. see log file for complete stacktrace
    >
    #### Cannot run application SummitADFUIShell due to error deploying to IntegratedWebLogicServer.
    [05:56:40 PM] #### Deployment incomplete. ####
    [05:56:40 PM] Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)
    [Application SummitADFUIShell stopped and undeployed from Server Instance IntegratedWebLogicServer]
    Thanks

    Hi Frank,
    As pr your suggestion, I have downloaded the latest version of Jdev 11.1.2.4.0 and still facing the same issue. I have Jdev 11.1.1.6. on my desktop too . Parallely, having the other version can create a problem ? . Just FYI, I have downloaded the sample again from the Magazine link and extracted it to a New location, tested and falied . I am going to try what Timo suggested and update the thread soon !!
    20 May, 2013 3:51:17 PM PDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor C:\Users\datta\AppData\Roaming\JDeveloper\system11.1.2.4.39.64.36.1\o.j2ee\drs\SummitADFUIShell/META-INF/weblogic-application.xml of module SummitADFUIShell. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
         at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:161)
         at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:323)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:409)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:759)
         at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:768)
         at weblogic.application.ApplicationDescriptor.getWeblogicApplicationDescriptor(ApplicationDescriptor.java:324)
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:181)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationForAppDeployment(MBeanConverter.java:67)
         at weblogic.management.deploy.internal.MBeanConverter.setupNew81MBean(MBeanConverter.java:315)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.compatibilityProcessor(ActivateOperation.java:81)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.setupPrepare(AbstractOperation.java:295)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:97)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: com.bea.xml.XmlException: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86baf4fb(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:54)
         at com.bea.staxb.runtime.internal.RuntimeBindingType$BeanRuntimeProperty.setValue(RuntimeBindingType.java:539)
         at com.bea.staxb.runtime.internal.AttributeRuntimeBindingType$QNameRuntimeProperty.fillCollection(AttributeRuntimeBindingType.java:381)
         at com.bea.staxb.runtime.internal.MultiIntermediary.getFinalValue(MultiIntermediary.java:52)
         at com.bea.staxb.runtime.internal.AttributeRuntimeBindingType.getFinalObjectFromIntermediary(AttributeRuntimeBindingType.java:140)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalBindingType(UnmarshalResult.java:200)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalDocument(UnmarshalResult.java:169)
         at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:65)
         at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:150)
         ... 27 more
    Caused by: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86baf4fb(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.staxb.runtime.internal.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:48)
         ... 35 more
    .>
    <20 May, 2013 3:51:17 PM PDT> <Error> <Deployer> <BEA-149605> <Failed to create App/Comp mbeans for AppDeploymentMBean SummitADFUIShell. Error - weblogic.management.DeploymentException: Unmarshaller failed.
    weblogic.management.DeploymentException: Unmarshaller failed
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:193)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         Truncated. see log file for complete stacktrace
    Caused By: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86baf4fb(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         Truncated. see log file for complete stacktrace
    >
    <20 May, 2013 3:51:17 PM PDT> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1369090277042' for task '0'. Error is: 'weblogic.management.DeploymentException: Unmarshaller failed'
    weblogic.management.DeploymentException: Unmarshaller failed
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:193)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         Truncated. see log file for complete stacktrace
    Caused By: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86baf4fb(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         Truncated. see log file for complete stacktrace
    >
    <20 May, 2013 3:51:18 PM PDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application 'SummitADFUIShell'.>
    <20 May, 2013 3:51:18 PM PDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.management.DeploymentException: Unmarshaller failed
         at weblogic.application.internal.EarDeploymentFactory.findOrCreateComponentMBeans(EarDeploymentFactory.java:193)
         at weblogic.application.internal.MBeanFactoryImpl.findOrCreateComponentMBeans(MBeanFactoryImpl.java:48)
         at weblogic.application.internal.MBeanFactoryImpl.createComponentMBeans(MBeanFactoryImpl.java:110)
         at weblogic.application.internal.MBeanFactoryImpl.initializeMBeans(MBeanFactoryImpl.java:76)
         at weblogic.management.deploy.internal.MBeanConverter.createApplicationMBean(MBeanConverter.java:89)
         Truncated. see log file for complete stacktrace
    Caused By: weblogic.descriptor.BeanAlreadyExistsException: Bean already exists: "weblogic.j2ee.descriptor.wl.LibraryRefBeanImpl@86baf4fb(/LibraryRefs[[CompoundKey: adf.oracle.domain]])"
         at weblogic.descriptor.internal.ReferenceManager.registerBean(ReferenceManager.java:231)
         at weblogic.j2ee.descriptor.wl.WeblogicApplicationBeanImpl.setLibraryRefs(WeblogicApplicationBeanImpl.java:1440)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         Truncated. see log file for complete stacktrace
    >
    [03:51:18 PM] Deployment cancelled.
    [03:51:18 PM] ---- Deployment incomplete ----.
    [03:51:18 PM] Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)
    #### Cannot run application SummitADFUIShell due to error deploying to IntegratedWebLogicServer.
    [Application SummitADFUIShell stopped and undeployed from Server Instance IntegratedWebLogicServer]
    Thanks
    Sandeep

  • ADF UI Shell tabs dirty

    Hi,
    I am using JDeveloper 11.1.14 and ADF-BC in my project.
    I am using ADF-UI shell design pattern in my application to show tabs and invoke task flows.
    On close of a tab or switching tab,if there are unsaved changes[transaction dirty],I want warn the user of any unsaved changes.
    How can I implement this??
    Please help.
    Thanks,
    Praveen

    Praveen,
    Searching via Google or the forum search would find:
    {thread:id=1012600}
    {thread:id=1110844}
    John

  • ADF UI Shell Pattern- How to pass parameter to the called bounded taskflow?

    The sample Launcher class of the ADF UI Shell template has the following code:
        private void _launchActivity(String title, String taskflowId, boolean newTab)
          try
            if (newTab)
              TabContext.getCurrentInstance().addTab(
                title,
                taskflowId);
            else
              TabContext.getCurrentInstance().addOrSelectTab(
                title,
                taskflowId);
          catch (TabContext.TabOverflowException toe)
            // causes a dialog to be displayed to the user saying that there are
            // too many tabs open - the new tab will not be opened...
            toe.handleDefault();
        }How do I pass a parameter to the bounded taskflow that will be launched?
    For example:
    1) I have a list of employees displayed on a tab.
    2) When I select a record and click an edit button inside the tab, A separate tab should open with the corresponding employee to be edited.
    How then could I pass the employee id to the edit-employee-task-flow?
    I can't think on how/what would a "calling taskflow" come into this picture?
    help!
    pino
    Edited by: pino on 16-Dec-2009 05:57
    Edited by: pino on 16-Dec-2009 09:59

    Hi Arunkumar,
    Thanks for the info. I was actually using EJB DataControls, and something similar to what you have suggested can also be done programmatically, but I wanted to follow the one promoted in the Fusion Developers' Guide to take advantage of the "ADF task flow framework" (like pass-by-value, pageflowScope, etc.) especially that we were having problems when we will just follow the procedures that was presented in the tutorials(I mean that- not all the procedures in the tutorials will work on an application based on the UI Shell pattern which do have multiple active taskflows.).
    For instance, you have an active List of employees in one tab, and two other tabs that try to edit employee records. If these employee list and employee edit forms are based on a single iterator binding, then what would happen to the information in the two edit forms on each separate tabs if you selected another row on the employee list tab? -- In our case, the edit tabs' values synchronized to the new selected row in the list tab.
    There are sure many work-arounds for these, but I am looking for a cleaner, clearer, or best way to handle this scenario.
    regards,
    pino

  • ADF UI Shell + ADF Security - blog post

    For readers of this forum, I've written a blog post on combining the UI Shell + ADF Security:
    New blog post: ADF UI Shell + ADF Security - http://one-size-doesnt-fit-all.blogspot.com/2009/12/adf-ui-shell-adf-security.html
    Regards,
    CM.

    Hi
    How does the SignIn/SignOut link in the UI Shell Global Area Work ?? . When the SignIn link is clicked it takes me to the default login Page and i am able to login . But once logged in , if i select the SignOut link , it doesn't seem to do anything .As per the document it is supposed to clear the User Session and redirect to the Home Page. Any reason why this is not happening ?
    Thanks
    Aditya

  • ADF UI Shell Controlling the tab launch

    Hi Everybody
    I have a tree component displayed in the navigational area of the UI shell. The tree displays, let say employees. I need to open a new tab for the distinct employees, However if the user click on same employee multiple times then it should open in the same tab. I set the parameter reuse instance = true in the OpenMainTask because i need to launch the the distinct employees in different tab, But i am not able to control it if we click on the same employee multiple times.
    Any help or links would be greatly appreciated.
    Thanks,
    Harish

    The source code for the UI Shell is available here (search for .zip in the page): http://www.oracle.com/technetwork/developer-tools/adf/uishell-093084.html
    Basically make your own cut of the shell, and add whatever functionality you want to the page template.
    CM.

  • ADF UI shell and taskflow parameters.

    I have the following use-case (implemented using the UI shell template)
    1. The navigation section consists of a tree consisting of heterogeneous entities.
    2. Each entity has a distinct "Details taskflow" associated with it. his needs to be launched in a separate tab on node selection
    In (2) above, the taskflow lauched also needs to know the "context" of the entity selected and that is exposed a taskflow parameter.
    Now when I explored the TabContext APIs, I could not figure out a way of passing parameters to these dynamically launched taskflows.
    In the bugDB I reached the following bug which seems to be requesting for this support.
    https://bug.oraclecorp.com/pls/bug/webbug_edit.edit_info_top?report_title=&rptno=9404289
    My query is with the current implementation is there any round about way of passing parameters to the dynamically launched taskflows.
    To me this looks a common requirement or may be I am missing something.

    Hi,
    I am not yet able to look on the updated UI Shell, but it seems that we have the same use-case. Maybe the sample app on the following link could help: http://soadev.blogspot.com/2010/03/reusing-single-page-for-record-viewing.html
    regards,
    Pino
    ps. Please note of the following enhancements on the newly released UI Shell:
    Oracle Dynamic Tabs Template
    A highlight of the fixes and enhancements made:
    * Fix to the java.lang.InstantiationException TabContext$TabSelectionActionListener exception reported in this forum.
    * Support for passing parameters to the task flows.
    * More page template attributes to adjust space allocation and control of specific areas (e.g., global header, global footer) of the template without having to modify the code.
    * Removed duplicate template attributes.
    * Properly referenced previously unused template attributes.
    * Tab state saving across page navigation
    * All objects are serialiableEdited by: pino on Apr 6, 2010 11:16 AM

  • Could someone explain me about ADF Security in UI Shell?

    Hello.
    I have my application main page implemented with a dynamic region and it's working fine.
    The application is secured using ADF Security and it is fine too.
    All the bounded taskflows are imported as ADF Libs. They have their permissions in jazn-data.xml. All the permissions work fine when the page is implemented with a dynamic region.
    Now I'm trying to rebuild it using UI Shell.
    All the permissions are the same, but now all my taskflows are not available.
    I've checked that it's a security issui by disabling security. Everything began to work fine.
    What changes should I do to permissions to make them work in UI Shell page?
    I've read this article http://one-size-doesnt-fit-all.blogspot.com/2009/12/adf-ui-shell-adf-security.html but didn't get the clue. It seems to me that everything's configured correctly.
    Thanks.
    JDev 11.1.2.2

    Hello Frank,
    I've added some test code to the lauching method and it shows no error:
    // name = User Info ;fullFlowId = /WEB-INF/info-tfd.xml#info-tfd
    System.out.println("userInRole = "+
                JSFUtils.resolveExpression("#{securityContext.userInRole['personal_office-app']}")
                ); // -> true
    System.out.println("taskflowViewable = "+JSFUtils.resolveExpression("#{securityContext.taskflowViewable['"+fullFlowId+"']}")); // -> trueBut still addOrSelectTab opens a new tab with "User Info" as a title but nothing is viewable in it.
    And here's jazn-data.xml part:<jazn-policy>
              <grant>
                <grantee>
                  <principals>
                    <principal>
                      <name>personal_office-app</name>
                      <class>oracle.security.jps.service.policystore.ApplicationRole</class>
                    </principal>
                  </principals>
                </grantee>
                <permissions>
                  <permission>
                    <class>oracle.adf.controller.security.TaskFlowPermission</class>
                    <name>/WEB-INF/info-tfd.xml#info-tfd</name>
                    <actions>view</actions>
                  </permission>
                  ...Also, my previous main page wuth a dynamic region in the same application is still working fine.

  • Best practice for mouseless ADF applications

    I am developing an ADF application where the users do not want to use the mouse.
    So I would like to know if there are a best practice for this?
    I am already using the accessKey functionality and subforms defaultCommand
    But I have had problems setting focus to objects on a page like tables. I would like a button to return the focus to the table after it has made the command like delete.
    I have implemented a solution where I have found inspiration several threads and other webpages (see below).
    Is this solution okay?
    Are there any problems with it?
    I would also like to know if there are better pathways to go like
    out of the box solutions,
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
    http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    in advance thanks
    Inspiration webpages
    https://blogs.oracle.com/jdevotnharvest/entry/how_to_programmatically_set_focus
    http://technology.amis.nl/2008/01/04/adf-11g-rich-faces-focus-on-field-after-button-press-or-ppr-including-javascript-in-ppr-response-and-clientlisteners-client-side-programming-in-adf-faces-rich-client-components-part-2/
    how to Commit table by writting Java code in Managed Bean?
    Table does not refresh and getting error as UIComponent is Null
    A short description of the solution:
    (jdeveloper version 11.1.1.2.0)
    --- Example where I use onSetFocus in jsff page
    <af:commandButton text="#{hrsusuiBundle.FOCUS}" id="cb10"
    partialSubmit="true" accessKey="f"
    shortDesc="Alt+Shift+F"
    actionListener="#{managedBean_clientUtils.onSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    </af:commandButton>
    --- Examples where I use doTableActionAndSetFocus in jsff page
    --- There have to be a binding in the jsff page to delete, commit and rollback
    <af:commandButton text="#{hrsusuiBundle.DELETE}" id="cb4"
    accessKey="x"
    shortDesc="Alt+Shift+X"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Delete"/>
    </af:commandButton>
    <af:commandButton text="#{hrsusuiBundle.COMMIT}" id="cb5"
    accessKey="s" shortDesc="Alt+Shift+S"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Commit"/>
    </af:commandButton>
    <af:commandButton text="#{hrsusuiBundle.ROLLBACK}" id="cb6"
    accessKey="z" shortDesc="Alt+Shift+Z"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}"
    immediate="true">
    <af:resetActionListener/>
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Rollback"/>
    </af:commandButton>
    --- This is the java class I use
    --- It is published in adfc-config.xml as a request scope managedbean
    public class ClientUtils {
    public ClientUtils() {
    public void doTableActionAndSetFocus(ActionEvent event) {
    RichCommandButton rcb = (RichCommandButton)event.getSource();
    String focusOn = (String)rcb.getAttributes().get("focusField");
    String actionToDo = (String)rcb.getAttributes().get("actionField");
    UIComponent component = null;
    String clientId = null;
    component = JSFUtils.findComponentInRoot(focusOn);
    clientId = component.getClientId(JSFUtils.getFacesContext());
    if ( "Delete".equals(actionToDo) || "Commit".equals(actionToDo) || "Rollback".equals(actionToDo) ){
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding(actionToDo);
    Object result = operationBinding.execute();
    AdfFacesContext.getCurrentInstance().addPartialTarget(component);
    if (clientId != null) {           
    makeSetFocusJavaScript(clientId);
    public static String onSetFocus(ActionEvent event) {
    RichCommandButton rcb = (RichCommandButton)event.getSource();
    String focusOn = (String)rcb.getAttributes().get("focusField");
    String clientId = null;
    if (focusOn.contains(":")) {
    clientId = focusOn;
    } else {
    clientId = findComponentsClientIdInRoot(focusOn);
    if (clientId != null) {           
    makeSetFocusJavaScript(clientId);
    return null;
    private static void writeJavaScriptToClient(String script) {
    FacesContext fctx = FacesContext.getCurrentInstance();
    ExtendedRenderKitService erks = null;
    erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
    erks.addScript(fctx, script);
    public static void makeSetFocusJavaScript(String clientId) {
    if (clientId != null) {
    StringBuilder script = new StringBuilder();
    //use client id to ensure component is found if located in
    //naming container
    script.append("var textInput = ");
    script.append("AdfPage.PAGE.findComponentByAbsoluteId");
    script.append ("('"+clientId+"');");
    script.append("if(textInput != null){");
    script.append("textInput.focus();");
    script.append("}");
    writeJavaScriptToClient(script.toString());
    public static String findComponentsClientIdInRoot(String id) {
    UIComponent component = null;
    String clientId = null;
    component = JSFUtils.findComponentInRoot(id);
    clientId = component.getClientId(JSFUtils.getFacesContext());
    return clientId;
    }

    Hi,
    I am developing an ADF application where the users do not want to use the mouse. So I would like to know if there are a best practice for this?
    Well HTML (and this is the user interface you see) follows a tab index navigation that you follow with "tab" and "shift+tab". Anything else is a short cut for which you use mnemonics (as you already do) or shortcuts (explained in http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html). There is a distinction to make between non-web environments (which I think you and your users have abackground in) and client desktop environments. Browsers block some keyboard functionality for their own purpose. So you may have to find a list of keys first that work across browsers. Unlike desktop clients, which allow you to "press a button" without the button to take focus, this cannot be done on the web. So you need to be clever here, avoiding buttons at all.
    The following paper is about JavaScript in ADF and explains the basics for what Chris Muir explains in : http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    http://www.oracle.com/technetwork/developer-tools/jdev/1-2011-javascript-302460.pdf
    It has the outline for how to register short cut keys that perform a specific action (e.g. register ctrl+d to delete the current row you are on, or press F11 to execute a query (similar to Oracle Forms frmres files)). However, be aware that this includes some code you have to write (actually quite some code to be honest).
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
    http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    Actually these are implementations as they come with example code for you to use and customize, do they? So what is this question asking for more ? Also note that global buttons don't quite have anything in common with the question you asked. I assume you want to see it as an implementation of the Forms toolbar that operates on the form or table the focus is in. This however does not work for the web as there is nothing that keeps track of which component has a focus and to what iterator (data block) it belongs. This would involve even more coding (though possibly doable)
    Frank

  • Oracle UI Shell Functional Pattern

    Problem Description
    A chief challenge in UI development is rational consistency -- providing the user with predictable locations and behaviors for the most salient features.
    Technical Pattern Description
    The Oracle ADF UI Shell is a template that provides guidance to development teams working towards a consistent UI for their customers. Because it is reinforced in code, it augments the probability that UI specifications will be followed. The primary assumption of the Oracle ADF UI Shell is that each page based on the template will represent a significant module of an application, if not separate applications. As a consequence, the "boilerplate" portion of the UI (e.g., branding, ubiquitous controls, obligatory legal statements) are more easily held consistent in form, placement, and function -- as they are defined once. The more interactive portion of the application -- features and functions that define the application -- are presented in the "workarea" of the template. The Oracle ADF UI Shell template identifies those areas through named facets (e.g., navigation) and regions (e.g., dynamic tabs). Nearly all, if not all, of the product's value add can be surfaced in regions of a single page as bounded ADF taskflows. In the end, customers enjoy a more predictable user experience.
    Click here to see the document that describes this pattern.

    I have already tested my understanding on the taskFlow binding "*parametersMap*" attribute above and it works!
    First, I added an additional parameter in line with the tabContext parameter to my custom dynamicTabShellDefinition.xml. The parameter binding section will be as follows:
    <parameters>
        <parameter id="tabContext" value="${viewScope.tabContext}"/>
        <parameter id="parameterMap" value="${requestScope.parameterMap}"/>
      </parameters>Note that instead of using ${viewScope.parameterMap}, I used ${requestScope.parameterMap} because it seems that when I passed a viewScope parameter from a backingBean inside one of my bounded task flows, it will not reach the initialization of my target task flow in the separate tab.
    Second, I redefined all my taskFlow bindings to define the "*parametersMap*" attribute value to "*#{bindings.parameterMap}*". Please see below a redefined taskFlow definition:
    <taskFlow id="r0"
                  taskFlowId="${viewScope.tabContext.taskflowIds[0]}"
                  activation="deferred"
                  xmlns="http://xmlns.oracle.com/adf/controller/binding"
                  parametersMap="#{bindings.parameterMap}">
          <parameters>
            <parameter id="tabContext" value="${bindings.tabContext}"
                       xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
          </parameters>
    </taskFlow>With the steps above, I could already define any parameter that I need in the bounded taskflow: Please see below for a sample parameter definition:
    <input-parameter-definition id="__2">
          <name id="__3">employeeId</name>
          <value>#{pageFlowScope.employeeId}</value>
          <required/>
    </input-parameter-definition>Just be sure that before you invoke the backing bean method that will call the TabContext addTab() method you already put the employeeId into the parameterMap and set the parameterMap into requestScope:
            Map<String, Object> parameterMap = new HashMap<String, Object>();
            parameterMap.put("employeeId",employee.getId());
            JSFUtils.setRequestAttribute("parameterMap", parameterMap);//JSFUtils is a utility class from FOD
            //direct or indirect call to the TabContext addTab() method hereI hope this will help others too.
    regards,
    pino

  • [ADF EMG] Update: ADF EMG Oracle Open World 2010 Unconference Sessions

    I teased in a previous forum post that I'd reserve publishing details about the ADF EMG Oracle Open World 2010 Unconference sessions till later. Well later is now, and I'm (you guessed it) excited to announce we have another full schedule at the Unconference. Read below for more details:
    Where and when?
    Location: Hotel Parc 55, 3rd Floor, Mason Room
    Map: http://www.parc55hotel.com/map-and-directions
    Date/time: Wednesday 22nd Sept 10:00-12:00
    Duration: 120min
    Topics and Speakers
    Oracle ADF 11g and Oracle WebCenter 11g Production Demo
    Andrejus Baranovskis - Red Samurai Consulting
    During his session Andrejus will demonstrate two production systems, the first a retail system, and the second for the education sector. Both systems are based on a standard Oracle development architecture - utilising ADF BC, ADF Task Flows, ADF Libraries and Oracle's ADF UI Shell. The second system in addition implements Oracle WebCenter Services - Composer, Discussions, Document Management and RSS feeds, providing a Web 2.0 platform.
    ADF BC 10g and ADF Faces 10g to ADF BC 11g and Trinidad, Live!
    John Flack – Information Engineer Synectics for Management Decisions, Inc.
    John will run a live lets-get-down-and-dirty demonstration of migrating a small ADF BC 10g/ADF Faces 10g application to ADF BC 11g and Apache MyFaces Trinidad. This will include steps to make the migration easier, the migration wizard, and how to clean up the application after migration, as well some differences between ADF Faces 10g and Trinidad. John will also show some steps needed which aren't documented, from some hard-earned real-life experience.
    Demonstration of UW-Madison's Scholarship Application
    Todd Hill & Ed O'Connor-Giles – Development Services Specialist and Technical Leader at the University of Wisconsin
    University of Wisconsin-Madison automates management, evaluation, and awarding of scholarships -- and the online application experience for students -- with an application built on Oracle ADF. In this session Todd and Ed from the university will demonstrate the application and their technical approach, discuss the many real-world technical challenges faced, and lessons learned in the course of the project.
    Integrating 3rd party tools/frameworks into ADF
    Gert Leenders - Product Manager at Axi Nv
    Gert will discuss their latest ADF project resulting in a real Java technology mash-up showing how ADF can be integrated with several different product. The core remains ADF but for the management of the business processes his team integrated JBoss jBPM, JBoss Drools as a business rule engine, and last but not least Alfresco & UCM as a content repository through the use of CMIS.
    ADF - How much do you really need to know?
    Sten Vesterli
    How much knowledge is enough? You could spend months or even years learning to master all aspects of ADF Business Components and ADF Faces, but you already know that you don't need to know everything. This presentations proposes a set of ADF skill levels and a way to classify application complexity - and a way to map these, so you know what skill levels you need in order to build a given application.
    Don't forget...
    Don't forget that the ADF EMG also has an on-schedule session on Sunday 19th:
    Session ID: S313445
    Location: Moscone West, Level 3, Room 3012
    Date/time: Sunday 19th Sept 14:00-15:00
    ...with the following well respected ADF and JSF speakers:
    • Frank Nimphius
    • Kito Mann
    • Aino Andriessen
    • Sten Vesterli
    We look forward to seeing you in San Francisco!

    Please note the Wednesday sessions have moved room to the Mason room. Same hotel, same date & time, just different room. The original post above has been changed.
    The Sunday session is still Moscone West Level 3 Room 3012.
    CM.

  • How to handle tab change event in UI shell main area

    Hi,
    I have two tabs(two taskflows) in UI shell main area. one is department tab and another is employee tab. My department tab shows employees department wise. On employee tab I have emplyee table which shows employees jobwise. This employee table has the functionality of adding new record to employee vo as well.
    Now i follow these steps.
    1. by defualt department tab is open.
    2. by clickinng on Tasks menu link i open Employee tab in to main area. Now i have both tabs in main area.
    3. at Employee tab I search all employees job = accountant. It shows the search result well.
    4. Now i add a new record to it and without saving/deleting this record i move to department tab.
    5. at Department tab i search employees where department =20, here no relation b/w job and department.
    6. Now i return to employee tab. my newly added record got disappeared. It is there but does not show in table.
    How to resolve it??
    I have one solution in my mind while changing the tab i can prompt to user "you can not leave the newly added record..either save it or delete it". But how to catch tab change event here? where i can write code to prompt msg to user?
    Pls help.
    Edited by: 900997 on May 6, 2012 4:10 AM

    With apologies for the slow reply, I'm currently travelling.
    Two things to note:
    1) The af:document uncommittedDataWarning flag was designed to stop users navigating away from half entered records. More about this flag can be found here:
    http://docs.oracle.com/cd/E23943_01/web.1111/b31973/af_orgpage.htm#CACDDDFH (see point 4)
    http://www.oracle.com/technetwork/developer-tools/adf/unsaveddatawarning-096556.html
    ....please note our documentation from time to time spells this flag wrong with only one "t" in the word committed, so if you're attempting a bulk search check for this (and I'll raise document bugs to get this fixed in the future).
    2) On addressing the ADF UI Shell, if you're switching between "pages" in the UI Shell, as separate to switching between dynamic tabs within a single page using the UI Shell, the UI Shell will actually restart the currently running task flow in the page you're returning too. You can verify this by implementing an initializer on your task flow with a log message, and watching when the initializer is called.
    In addressing your last question, at this stage I think you need to assess my first answer then come back if you think you sill need to execute the code on the tab click. I also need to know are you talking about the primary level of tabs that represent each page in the UI Shell, or are you referring to the dynamic tabs within a single UI Shell page that hold your task flows?
    CM.

  • Overcoming a challenge: combining UI Shell dirty tab + self-closing-BTFs

    I'm finding it difficult to utilise facilities of the ADF UI Shell from self-closing-standalone bounded task flow.
    What the ADF UI Shell does well: from the UI Shell you can open a standalone BTF as an activity, and if the BTF closes itself (ie. given the user selects a ok or cancel/close button, the the standalone BTF navigates to a Task-Flow-Return option), the BTF closes and the ADF UI Shell correctly closes the tab around the activity.
    My challenge is I want to add the ADF UI Shell's "dirty tab" facility to the BTF, such that if the user inside the BTF selects a custom cancel/close button (not the UI Shell close button for tabs) that navigates to the Task-Flow-Return option within the BTF, they get a chance to confirm/cancel the close via the ADF UI Shell dirty tab popup. (Note that the Task-Flow-Return options are critical to self-closing BTFs as they not only give the BTF the chance to commit/rollback, as well as make them re-entrant, or play with the savepoint features.)
    If from the ADF UI Shell shellLauncher bean we call makeCurrentTabDirty method on opening the BTF, the BTF's activity tab is italicized correctly. Yet if the user selects the BTF's cancel button, the BTF closes (it actually disappears from the ADF UI Shell) but the UI Shell activity tab is still visible, then the dirty tab dialog shows, which is too late, the BTF has closed already.
    So my solution at this point is on the BTF close button being pressed, before it navigates to the BTF Task-Flow-Return option, I can get the ActionListener of the BTF close button to raise a Contextual Event to the ADF UI Shell to capture the "Close Event" occurring. The UI Shell then has a chance to show the dirty tab dialog by capturing the Contextual Event.
    My sticking point then is the TabContext class provided in the UI Shell has no way to invoke the dirty tab dialog without calling the removeTab method. It's not desirable for the UI Shell to close the BTF as the BTF's Task-Flow-Return activities must still be called.... remembering they have additional functionality that is required for the BTF.
    Even if the TabContext method did have a solution for displaying the dirty tab dialog without closing the tab (TabContext is easy enough to extend yourself if you have the source code), the problem to which I can't think of a solution is, how to get the dirty tab dialog to communicate the result (yes/no) back to the standalone BTF such that it can make a decision about aborting the close action and leaving the user on the current page fragment, or navigating to the Task-Flow-Return node?
    It might be suggested I could expose the dirty tab dialog to the standalone BTF such that it could show the confirm dialog itself. However the point being is the BTF is standalone, and should not have any knowledge of where it's being used, in the UI Shell or some other application supershell. Publishing the intent to close the BTF via a contextual event seems fine, but alternatively loading in components from the UI Shell seems to break the standalone I-don't-know-or-care-about-what-my-parent-caller-is-doing BTF principle seems on the border of wrong.
    Anybody any pointers, suggestions, or comments like you're-an-idiot-Chris,-do-it-this-way? Your help appreciated.
    Regards,
    CM.
    PS. JDev v11.1.1.2.0 with UI Shell v1.02

    how to get the dirty tab dialog to communicate the result (yes/no) back to the standalone BTF such that it can make a decision about aborting the close action and leaving the user on the current page fragment, or navigating to the Task-Flow-Return node?I hope everyone interested on this challenge will find the application on this link useful: http://soadev.blogspot.com/2010/08/loosely-coupled-bounded-task-flows.html
    Regards,
    Rommel Pino
    http://soadev.blogspot.com

  • How to handle tab leave event

    Hi.
    I'd like to handle tab leave event before user selected tab shown.
    because I'm making Settings dialog.
    So I want to validate tab contents when user leaving the tab.
    And stay the tab if invalid user input.
    Thanks.

    With apologies for the slow reply, I'm currently travelling.
    Two things to note:
    1) The af:document uncommittedDataWarning flag was designed to stop users navigating away from half entered records. More about this flag can be found here:
    http://docs.oracle.com/cd/E23943_01/web.1111/b31973/af_orgpage.htm#CACDDDFH (see point 4)
    http://www.oracle.com/technetwork/developer-tools/adf/unsaveddatawarning-096556.html
    ....please note our documentation from time to time spells this flag wrong with only one "t" in the word committed, so if you're attempting a bulk search check for this (and I'll raise document bugs to get this fixed in the future).
    2) On addressing the ADF UI Shell, if you're switching between "pages" in the UI Shell, as separate to switching between dynamic tabs within a single page using the UI Shell, the UI Shell will actually restart the currently running task flow in the page you're returning too. You can verify this by implementing an initializer on your task flow with a log message, and watching when the initializer is called.
    In addressing your last question, at this stage I think you need to assess my first answer then come back if you think you sill need to execute the code on the tab click. I also need to know are you talking about the primary level of tabs that represent each page in the UI Shell, or are you referring to the dynamic tabs within a single UI Shell page that hold your task flows?
    CM.

  • 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.

Maybe you are looking for

  • What's the best way to create and free temporaries for CLOB parameters?

    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production on Solaris I have a procedure calling another procedure with one of the parameters being an IN OUT NOCOPY CLOB. I create the temporary CLOB in proc_A, do the call to proc_B

  • Bug in Page source view

    In Page Source view in 32-bit Firefox 3.6 under Windows, if there is a URL in the source code that is erroneously not closed with a quote, for example: <a href="http://mozilla.com>The Mozilla' site</a> (Note absence of quote after .com) And you reloa

  • Wireless-N hardware and software issues

    Yep the 300N gear goes back to BBuy tomorrow. I purchased a V1 of the wrt54G hardware almost 3 years ago, it died last week. Figured I’d buy the latest and greatest and be all set for another couple of years. Well I’ve had similar problems as the pos

  • Problem hiding a text field

    Hi, For some reason I am unable to hide a text field by clicking on a button. This is what I'm doing: txtField.presence = "hidden"; I'm using javascript and I can hide other buttons if I set their presence to "invisible", but I cannot hide a text fie

  • Question regarding different sizes of movies posted to Mobile Me

    I am using iMovie '08 and just published a 10 min movie in both large and medium sizes. The question is: "Does publishing different sized movies increase the amount of storage used by the move on the Mobile Me cloud?" Specifically, if I publish a mov