Showing posts with label Dialog. Show all posts
Showing posts with label Dialog. Show all posts

Tuesday, December 20, 2011

Access Keys are accessible even from a modal popup

When a popup is open in a page in default (modal) mode then the rest of the components of the page are not accessible with mouse, yet if buttons have Access keys they are still functional allowing the user to brake the functionality.

n the attached test case run testpopup page
Press Edit button to open popup
Press Alt+Shift+c access key of Commit button

Expected: Nothing should happen
Actual: Commit is performed and popup is closed.



Test case.

SR is posted for this and Bug 13338347: ACCESS KEYS SHOLD BE DISABLED BASED ON THE CONTEXT

Yet the Oracle development consider this as a Browser issue. 'The issue is not in the scope of the ADF Product as this is the feature of the browser. '

We are working on a workaround about this issue.
We are based on the fact that when a button is disabled then the access key is not functional.
So on popup FetchListeners we disable the buttons of the main page and on popupCancelListeners we enable buttons again.
It seems to work, yet we need to check any side effect and we need to implement it for all popups.

Tuesday, November 10, 2009

returnListener from dialog page not invoke when pressing x button

In a button that opens an other page as dialog if you define a returnListener method in managed bean then when you return form dialog page by a button that has af:returnActionListener then it works fine.

But if you close the dialog page with explorer x button then return listener is not invoked!

i also noticed a worning in log:

WARNING: The application is running with the new window detect flag off. It is highly recommended that this flag be turned on to ensure proper functioning of your application when new browser windows are launched. In web.xml set the context parameter oracle.adf.view.rich.newWindowDetect.OPTIONS to 'on'.

But even when i did that there was no difference appart from no worning.

Is this a bug?

How can we ensure that when a dialog closes (no matter how) a method will be executed?

Test case:

Wednesday, September 9, 2009

Unsaved changes uncommittedDataWarning bug

I was reading JDeveloper 11g — Functional Patterns & Best Practices for unsaved changes
and decided to try it.

I created 2 task flows and 2 pages and navigation between them, normal and as dialog
In both pages i set and i run application.
I make a change in department name and press Employees Dialog.
The warning message for changes apear.

But the Employees Doesn't open as dialog!!??
When i try to return to Departments i get again the warning, even though no changes in this page and its a different task flow
So with this feature
you cannot use dialogs,
it does not rollback data
it does not depend on page or on task flow.
you cannot change the message
you cannot add custom logic on it
The only good thing about this feature is that the warning shows also when you try to close the explorer window. I wish it was working only then and it also released the application module.
test case:

Thursday, August 6, 2009

Region and dialog return bug

I create a simple application with Departments and Jobs entities and view objects.

I put Departments as a simple form in a page and Jobs as a simple form in a page fragment and task flow that i add as a Region in the first page. I also create a dummy dialog with a return button.


But when i return from dialog and try to navigate inside the region i get the following error:



java.lang.IllegalStateException: ADF_FACES-60058:Attempt to re-register component with different model. at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager._registerComponent(PageDataUpdateManager.java:256) at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager.registerComponentForPPR(PageDataUpdateManager.java:161) at oracle.adf.view.rich.activedata.ActiveComponentContext.popActiveComponent(ActiveComponentContext.java:371) at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1191) at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335) at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:751) at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)

After that the page is no longer functional.

Is this a bug?

Test case:
http://adfbugs.googlecode.com/files/RegionAndDialogTest.zip

P.s. This bug was found by 2 female colegues (Roula and Nota) in our application. It was working befor r1 of jdev11.

Sunday, August 2, 2009

Returning from dialog to a page that has f:verbatim tag bug

We had a bug in application that when we return from dialog page the page was brocken, bindings were lost, and exceptions apeared in the log.

I managed to reproduce it in a simple test case:
I create a simple page with default oracle template and a dialog page.
I click on header facet and just typed something (test)





I run application i open dialog but when i return from dialog i have exception:


INFO: unable to dispatch JSP page: The following exception occurred:.java.lang.NullPointerException at oracle.adfinternal.view.faces.taglib.region.IncludeTag$RelocatedFacet.restoreFacet(IncludeTag.java:816) at oracle.adfinternal.view.faces.taglib.region.IncludeTag.doStartTag(IncludeTag.java:192) at oracle.adfinternal.view.faces.taglib.region.DynamicIncludeTag.doStartTag(DynamicIncludeTag.java:109) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:50) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:257) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:257) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:257) at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87) at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58) at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:257) at oracle.jsp.runtime.tree.OracleJspNode.execute(OracleJspNode.java:76) at oracle.jsp.runtimev2.ShortCutServlet._jspService(ShortCutServlet.java:88) at oracle.jsp.runtime.OracleJspBase.service(OracleJspBase.java:29) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:416) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:722) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:500) at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:248) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44) at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:267) at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:473) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:141) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:685) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:261) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:193) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146) at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

and the page is no longer functional.

If i remove f:verbatim tag the page and dialog work nomraly.

So is this a bug?

If we should not use f:verbatim on ADF pages, why it is set automaticaly when you type something on the page?

Test case:
http://adfbugs.googlecode.com/files/TestDialogReturn.zip

Sunday, July 12, 2009

ADF return from dialog Dialog Bug

So I heard that returnActionListener works now on R1
So I wanted to try a dialog
The scenario is simple
The same employee query and edit pages below but I open query page as dialog


I hope that when I return I will be able to have somehow the same row as in dialog. So I put a partial trigger for the button to the form.
But no luck, when I return even if I haven't selected a different row I have an error message

Ofcourse if i do the same without a dialog it works correctly.
So Is this a bug?
Is there a workaround?

Download testcase from:
http://adfbugs.googlecode.com/files/TestDialog.zip