Posts

Adhoc SQL Query Addon For Your ADF 11g Application

Image
It is very common that once you release your application you may need to execute some SQL queries through your application for trouble shooting purposes etc. I wanted to try how possible to implement  this in ADF and here is what I found in a very primitive way. I have a text area for the user to enter the SQL query and when the execute button is clicked the results will be displayed in the table below. In able to achieve this I am creating a View Object from a SQL statement in my AM. AM code ... @Override protected void prepareSession(Session session) { super.prepareSession(session); if (findViewObject("SQLVo") == null) { createViewObjectFromQueryStmt("SQLVo", " select 1 from dual "); } } public void executeSQL(String pSQLQuery){ ViewObjectImpl vo = null; if (findViewOb...

Microsoft Code Camp

Last Saturday I attended a Microsoft developer's code camp event in Fort Lauderdale. You might be wondering why I am attending a MS event while working with ADF and Java. First of all these events are really great opportunities to see what is going on in the Microsoft world. Secondly I usually try to attend more generic sessions so that I can benefit more. I really enjoyed it again .. Those were the keywords from the event Azure - MS's cloud computing platform Silverlight -MS technology that corresponds to flash/ JavaFX SQL Sharepoint WCF  I wonder why Oracle or Sun doesn't organize events like this .. Is that that tough ? Microsoft is putting a great effort to build and support their developer's community. I expect something similar from Oracle as an Oracle Developer. 

Custom Declarative Component- Multi-Select LOV

Image
 I needed to implement a multi select LOV solution for a requirement and I thought that building a declarative component would be the ideal way to go ..   Here I will give a sample of that component, you can enhance it according to your needs. 1-Start a new application and add a new generic application 2-From the new gallery pick "JSF Declarative Component" 3-Provide details for the component 4-Edit MultiSelect.jspx and add your components. I will use an inputText and an icon to simulate the LOV. When the icon is clicked I will launch a popup and in the popup I will use a af:query and af:table . LovModel has attributes for af:query and af:table. Those attributes will be utilized to fetch the lov data and search areas. Make sure you set the Simple attribute to true. Otherwise it wont align well in panelFormLayout Now we need to add the popup .. Pay attention to the af table I used here. It is a dynamic table and it forms itself from the lovModel. It is se...

Launching an LOV by clicking a link or button 11g

I needed to launch the LOV by clicking a link and found the below solution.. Basically I have a RichInputListOfValues on my page but it is set to invisible and I am using a commandlink to popup the LOV .. See the code below.. RichInputListOfValues lovComp = getPostingTemplate(); FacesCtrlLOVBinding.ListOfValuesModelImpl lovModel = null; lovModel = (FacesCtrlLOVBinding.ListOfValuesModelImpl)lovComp.getModel(); lovModel.performQuery(lovModel.getQueryDescriptor()); LaunchPopupEvent e = new LaunchPopupEvent(lovComp); e.queue();

Soft delete with ADF entities

Say that you have a table created with this script, create table users(user_name varchar2(20) primary key, name varchar2(100),active_yn varchar2(1) default 'Y') And you want to set the active_yn to N when a delete occurs instead of doing a hard delete. I found this solution working, I am still not sure whether it is the best way or not.. I created my entity by using the wizard . Then edit the entity and on the Java tab select the below check boxes to generate the required Java classes. 1-Generate entity object class 2-Remove method 3-Data manipulation methods Then in the generated Java file change the remove and doDml methods as below /**Add entity remove logic in this method. */ public void remove() { setActiveYn("N"); super.remove(); } /**Custom DML update/insert/delete logic here. */ protected void doDML(int operation, TransactionEvent e) { if (operation != DML_DELETE) super.doDML(operation, e); ...

Handling the navigation from a backing bean

Yesterday I was experiencing some login form, in which I am calling a backing bean when the login button is pressed. In the backing bean depending on the return of the operation call I want to redirect the navigation to the corresponding page. After doing some research in the forums I found the below solution. We use NavigationHandler class to redirect the flow of the application. public String doLogin() { BindingContainer bindings = getBindings(); OperationBinding operationBinding = bindings.getOperationBinding("login"); Object result = operationBinding.execute(); FacesContext context = FacesContext.getCurrentInstance(); NavigationHandler nh = context.getApplication().getNavigationHandler(); if (((String)result).equals("SUCCESS")) nh.handleNavigation(context, null, "SUCCESS"); else nh.handleNavigation(context, null, "ERROR"); return null; }

ADF Methodology email list

Some ADF experts created a mailing list on Google to discuss the best practices with ADF. Here is the link to be part of that group http://groups.google.com/group/adf-methodology?hl=en