Domain Portal

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Sunday, 15 April 2007

Oracle Maps portlet in Oracle WebCenter

Posted on 01:58 by Unknown
Oracle WebCenter is a framework, that allows using standard portlets in your Oracle ADF application. Oracle Maps product is a part of Oracle MapViewer, Oracle Maps functionality can be used by provided JavaScript API. It was interesting for me - how it is possible to integrate both? I mean - develop portlet with Oracle Maps functionality and integrate it into Oracle ADF application JSPX page. It seems, this is possible and it works perfectly. So, with Oracle WebCenter you can use spatially enabled portlets directly in Oracle ADF. Download developed sample - MapViewerPortlet.zip.

If you are new to Oracle Maps, it would be helpful to review my previous post - JavaScript in ADF Faces - Oracle Maps. For this sample is used the same spatial datasource - MVDEMO. However, instead of Oracle MapViewer Quickstart Kit, I'm using mapviewer.ear application deployed to WebCenter Preconfigured OC4J. Everything you may need for developing spatially enabled applications can be downloaded from OTN. Detailed information about how to use Oracle WebCenter framework you can find in Oracle WebCenter Framework Tutorial.

Oracle Maps functionality is implemented in portlet view.jsp file using JavaScript code. In view.jsp Oracle Maps JavaScript API file is included, style for map window and it's ID is defined, and lastly map creation code is provided. When those steps are done, developed portlet is integrated and created on map.jspx in standard way, like any other portlet used in Oracle WebCenter framework. Oracle Maps API used in this sample is really simple:


When deploying and running developed application, you should carefully follow steps described in Oracle WebCenter Framework Tutorial - 9 Deploying Your WebCenter Application.

Developed spatial portlet used in Oracle ADF should look similar:


It is possible to refresh or hide it. This functionality is provided by Oracle WebCenter framework.

When running sample application, don't forget to add adf-faces-impl.jar, jsf-impl.jar, custComps.jar and portlet-client-adf.jar to application's WEB-INF\lib directory.
Read More
Posted in ADF, Spatial, WebCenter | No comments

Monday, 9 April 2007

Create, Edit and Delete operations in ADF Faces af:table component

Posted on 01:25 by Unknown
I have received questions for my previous post - Creating new row using CreateInsert operation, about how to extend described sample with Edit functionality and how to make table read-only. I have extended published sample and want to describe updated functionality in this post.

Datasource and business logic are used the same as before. New features of extended sample - EditableTable.zip:
  1. Table is read-only, however newly created row is shown in edit mode
  2. Editing for selected row is enabled
  3. Delete operation is added
To make existing rows read-only and newly created row editable until save, you must change ReadOnly property value for each af:inputText component contained in af:column. Set ReadOnly property value to - #{row.JobId != null}. This means, if row isn't empty it will be displayed as read-only. In other case, if row is empty it will be displayed as editable:


After 'Save' button is pressed, newly entered row is stored in the database:


Second feature - selected row editing. To enable row editing I have used technique described in Frank Nimphius's blog - ADF Faces: Conditionally disabling an af:tableSelectOne row for selection. You should create ActionListener for Edit button, created ActionListener will store selected row ID into managed bean atttribute - enableEditing. Managed bean method code for enableEditing attribute, this code compares current row with selected row:


For each af:inputText component contained in af:column, change ReadOnly property value to #{row.JobId != null && !valueHolder.enableEditing}. Edit functionality:


Delete operation is developed by making simple drag-and-drop from Data Controls pallete to ADF Faces af:table component.


When running sample application, don't forget to add adf-faces-impl.jar and jsf-impl.jar to application's WEB-INF\lib directory.
Read More
Posted in ADF | No comments

Sunday, 1 April 2007

Oracle Day'07 in Vilnius

Posted on 03:10 by Unknown
This week I was participating in local Oracle Day event. This event was organized by local Oracle Corporation office on March 27. Event statistics - 43 sessions and 700 participants. Parallel sessions were divided into three categories - Oracle applications, Oracle technologies and Oracle partners.


My presentation title was - "Oracle JDeveloper and Oracle ADF: deeper sight". During the presentation I have talked about Oracle JDeveloper functionality and about Oracle ADF features. The main focus was to show for the auditory how it is simple to use Oracle ADF, I have described steps needed to create standard CRUD type WEB application. I should say, presentation has received quite big attention - there was something about 100 people auditory. Presentation title slide - "Oracle JDeveloper and Oracle ADF: deeper sight":


As it was mentioned, I have described steps needed when using Oracle ADF. Described steps were:
  1. Entity objects development
  2. Use Case implementation - View objects and Application Module
  3. Developed Application Module testing
  4. Business logic implementation - adding data validation functionality to Entity object
  5. View layer development using Oracle ADF Faces
  6. Application running using Oracle JDeveloper embedded OC4J
Those steps were described based on developed sample application - OracleDayDemo.zip. Sample is based on standard HR schema and use two tables - JOBS and EMPLOYEES. It implements two Entity objects, two View objects and one ApplicationModule. All Business Components are developed using Oracle JDeveloper Business Components diagram. In View layer three pages are created - viewJobs.jspx, editJob.jspx and viewEmployees.jspx. Business Components structure for developed sample:


Page flow diagram - available pages and navigation cases between them:


When running sample application, don't forget to add adf-faces-impl.jar and jsf-impl.jar to application's WEB-INF\lib directory.
Read More
Posted in ADF | No comments

Sunday, 25 March 2007

Reusability in Oracle ADF Business Components

Posted on 01:07 by Unknown
In Oracle ADF it is possible to create libraries for common solutions, and to reuse them later in several projects. This gives more productivity, project developer doesn't need to start from nothing - he will have working solutions at hand. If you would like to do this, there are instructions available in Oracle ADF Developer's Guide For Forms/4GL Developers - 25.7 Working with Libraries of Reusable Business Components.

There is nothing special when creating reusable library. In fact, you will need just to create specific deployment profile - Business Components Archive. This profile is used to create two JAR files - *CSMT.jar and *CSCommon.jar, which should be included into other projects. When reusing created library, developer will need to import those JAR files - instructions are available in Oracle ADF Developer's Guide (see above). After that, when library will be successfully imported, it will be possible to use provided components in Oracle ADF Business Components wizards.

Developed sample application is divided into two parts - CountriesReusableLibrary.zip and RegionsCountries.zip. In first part reusable library is implemented, it comes under lt.andrejusb.model.reusable package - Entity and View object for COUNTRIES table from standard HR schema are created. Implemented reusable library contains deployment profile. Second part implements support for REGIONS table and reuse developed library.

Sample application page flow logic:


Locally implemented Regions functionality:


Show countries button invokes imported functionality. Countries for selected region are displayed in the table:


Functionality in View layer is implemented in common way, it doesn't depend on reusability we have used. For 'Show countries' af:commandButton is created af:setActionListener, that stores selected #{row.RegionId} value into #{processScope.regionId}. Data for table contained in countries.jspx page comes from imported component, this table depends on selected #{row.RegionId}. Dependency is implemented using ExecuteWithParams action and setRegionId invoke action.

ExecuteWithParams definition in countries.jspx page definition file:


setRegionId invoke action definition:


So, reusability in Oracle ADF Business Components can be achieved really easy - this may help to develop your projects more effectively.

When running sample application, don't forget to add adf-faces-impl.jar and jsf-impl.jar to application's WEB-INF\lib directory.
Read More
Posted in ADF | No comments

Sunday, 18 March 2007

Inheritance in Oracle ADF Business Components

Posted on 04:08 by Unknown
If necessary, in Oracle ADF Business Components it is possible to use inheritance. Inheritance is especially useful when iterative approach for project implementation is used and requirements aren't stable. For example, let's say primary requirement was to display records for all employees. Later, analyst has asked to implement functionality of filtering employees by salary value. In this case, instead of creating completely new two additional View objects, you can extend existent View object. More information on this topic you can find in Oracle ADF Developer's Guide For Forms/4GL Developers - 25.9 Creating Extended Components Using Inheritance.

I have created sample application - BC_Inheritance.zip, which shows how you can use inheritance with your business components. For the data source is used EMPLOYEES table from standard HR schema. The logic is the same as I have described it above - there is base View object and two extended. Business Components diagram for this sample:


EmployeesHighSalaryView retrieves records from database with salary value greater than entered, and EmployeesLowSalaryView with lower. Both of those View objects differs from their base View object by query Where clause.

How you can create extended View objects? There is nothing simpler - just use Oracle JDeveloper wizard. You should open Create View Object dialog and in the first step specify base View object you want to extend:


Other steps are the same as for usual View object.

In Presentation layer, View objects extended from base View object are used in similar way as usual View objects. In this sample I have added to the Data Model only extended View Objects, without base object. Data control looks like:


Sample application logic - user enters salary value and submits it by pressing Show button. When button is pressed, the same value is passed to both extended View objects. First View object shows employees with salary higher than entered and second View object with lower. This screen shows how it looks in practice:


When running sample application, don't forget to add adf-faces-impl.jar and jsf-impl.jar to application's WEB-INF\lib directory.
Read More
Posted in ADF | No comments

Saturday, 10 March 2007

Trip to Finland capital - Helsinki

Posted on 09:48 by Unknown
During this week I was in Helsinki, Finland. City have seen to me very practical, with well developed infrastructure for public sector. I mean, that it seems there is no problems with hotels, restaurants, transport and other services. It's not very cold in Helsinki now, only -4..0 °C, and almost no snow. In the city center they have trams, with advertisements - 'FEEL California, TASTE California', this looks quite interesting in cold Finland ;-)


Architectural style of the city center - broad roads, high buildings, big squares:




It is possible, that there is no terrible traffic jams in the city, because Helsinki have a subway. However, at 8:30 PM subway station hall was quite empty - only one person:


I have noticed, that in Helsinki, Russian culture presence is strong. It feels everywhere - architecture, street names and even souvenirs ;-). Russian souvenirs in Helsinki:


There is Russian culture presence in Helsinki, because Finland was a Grand Duchy of Russia (1809-1917). However, there was The Language Decree issued in 1863 by the Emperor of the Russian Empire Alexander II. It was the beginning of the process through which Finnish became an official administrative language equal to Swedish. In the Senate Square in Helsinki there is the monument to Alexander II "The Liberator":


The same monument, from closer look:


I hope, provided information will be useful, if you will be planning a trip to Helsinki.
Read More
Posted in Traveling | No comments

Sunday, 4 March 2007

Many-to-Many mapping in Oracle TopLink

Posted on 04:54 by Unknown
This kind of mapping in relational world is constructed using three tables. However, in object world only two classes are used for many-to-many. I have developed sample application - TopLinkMM.zip, that shows how many-to-many is supported in Oracle TopLink. For this sample I'm using Readers/Blogs mapping - one reader can read many blogs and one blog can be read by many readers.


SQL scripts for database schema are available in sample application lt.andrejusb.utils package under Model project.

Many-to-many mapping in Oracle TopLink is enabled by adding attribute with ValueHolderInterface type and corresponding accessors to the one of two classes involved into relationship. In developed sample I have added ValueHolderInterface type attribute - blogs, into Reader class. When accessors are created, it's time to enable many-to-many mapping using Oracle TopLink wizard in JDeveloper. To do this expand descriptor for Reader and double-click blogs element, this element is unmapped. When wizard dialog will be opened, set values for Reference Descriptor and Relation Table. Also, select - Private Owned and choose source and target references. General tab in mapping wizard should look like this:


If many-to-many will be successfully configured, JDeveloper will show appropriate icon for blogs attribue:


So, mapping is enabled, now we can test it. I have developed JUnit test suite, where insert and select is performed. Many-to-many test method code:


JUnit shows green light - there is no errors:

Read More
Posted in TopLink | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Groovy - Multiple LOV's per Attribute in JDeveloper 11g
    I was blogging previously about multiple LOV's per attribute functionality. I was using RowImpl class for View object in order to calcu...
  • External Transaction Service in Oracle TopLink
    I have developed sample application, in order to demonstrate how to use External Transaction Service (ETS), when Oracle TopLink is used in M...
  • Many-to-Many mapping in Oracle TopLink
    This kind of mapping in relational world is constructed using three tables. However, in object world only two classes are used for many-to-m...
  • Multi-selection feature and ADF Faces af:table component
    In this post I will describe how to use multi-selection feature in ADF Faces. First of all I should say - multi-selection feature is fully s...
  • Oracle JDeveloper/ADF Developers Wanted
    In my current Oracle JDeveloper/ADF project we are searching for additional developers. Project is based on Oracle Fusion 11g, so it can be ...
  • After UKOUG'08
    This week I was on UKOUG'08 conference. I really have enjoyed high quality of its content and I have learned new technical things about...
  • Oracle Spatial and Network Data Model
    During this week, a student from university where I'm achieving my master degree - Vincent, have asked me how to create SDO network dat...
  • Customizing Applications with MDS - Practical Overview
    During ODTUG Kaleidoscope 2008 , I was discussing with Shaun O'Brien (Principal Product Manager from Oracle Development Tools group) abo...
  • Hints for ADF 11g Application Credential and Policy Migration to Standalone WebLogic Servers
    Recently I was deploying our ADF 11g application on standalone WebLogic server. Deployment itself is straightforward, however it is little b...
  • Workaround for Null Value Bug in ADF List Of Values 11g
    Those of you, who are using List Of Values (LOV) component in ADF 11g, most probably already have noticed bug related to Null value. Simple ...

Categories

  • ADF
  • Apex
  • Apple
  • BPEL
  • Events
  • Forms
  • Groovy
  • JDeveloper 11g
  • Nomination
  • ODTUG Kaleidoscope
  • OFUG
  • Oracle Magazine
  • Oracle OpenWorld
  • Security
  • SOA
  • Spatial
  • TopLink
  • Traveling
  • Uncategorized
  • Vgo Software
  • Web Services
  • WebCenter
  • WebLogic
  • Workarounds

Blog Archive

  • ▼  2008 (72)
    • ▼  December (2)
      • Groovy - Multiple LOV's per Attribute in JDevelope...
      • After UKOUG'08
    • ►  November (3)
    • ►  October (9)
    • ►  September (4)
    • ►  August (9)
    • ►  July (6)
    • ►  June (10)
    • ►  May (4)
    • ►  April (5)
    • ►  March (7)
    • ►  February (5)
    • ►  January (8)
  • ►  2007 (65)
    • ►  December (6)
    • ►  November (7)
    • ►  October (6)
    • ►  September (4)
    • ►  August (3)
    • ►  July (4)
    • ►  June (6)
    • ►  May (5)
    • ►  April (6)
    • ►  March (4)
    • ►  February (5)
    • ►  January (9)
  • ►  2006 (9)
    • ►  December (9)
Powered by Blogger.

About Me

Unknown
View my complete profile