Skip to main content
This revision made June 20, 2012 03:38, by steven.davelaar

ADF Samples - Generic


ADF Security

BPM Integration

Contextual Events

See also ADF Region and Task Flow Communication

Customization - Personalization

See also Steve Muench' undocumented 10.1.3.x samples nr. 131

Data Push

LJE036 ADF Faces: Handle task in background process and show real time progress indicator for asynchronous job using Server Push in ADF [11.1.1.4] 19-OCT-2011
ACC065 Active Data Service Sample - Twitter Client [11.1.1.x] 01-DEC-2010
SMU156 Use AutoRefresh VO in Shared AM with Optimized Polling to Show Latest Data in a Table [11.1.1.2] 26-DEC-2009
This example illustrates how to use an Auto-Refresh view object in a shared application module to display the latest database changes in a table without eagerly requerying the view object. The DeptView view object has its AutoRefresh property set to true and the Model project defines a shared application module instance named AppModule on the Business Components > Application Module Instances panel of the project properties. The AppModuleDataControl entry in the dataControlUsages section of the DataBindings.cpx file in the ViewController project has been configured to use the AppModuleShared configuration so that the UI works with a shared application module instance. As an optimization, the DeptView view object overrides the processDatabaseChangeNotification() method to keep track of the System.currentTimeMillis() in a local member field. The view object's getLastRequery() is exposed on the client interface and is accessed by the DepartmentPage backing bean's via a method action binding. That bean's onPollTimerExpired() method only bothers to add the table UI component as a partial target if the time the view object was last requeried is greater than the time the table was last PPR'd (which it tracks in a viewScope attribute). To try the demo, run the Departments.jspx page. If you'd like try accessing the same page from several different browsers (e.g. Firefox, Internet Explorer, Chrome) to simulate multiple, distinct user sessions. In SQL Plus (or the JDeveloper SQL Developer worksheet window) try insert, updating, or deleting rows in the DEPT table and committing the changes. Sometime in the next 15 seconds, the different browser user's should update to reflect the changes automatically.
EBI007 ADF Data push with Active Data Service [11.1.1.2] 05-DEC-2009

Deployment

Internationalization

List of Values - Select Lists

ACC090 How-to filter ADF bound lists [11.1.1.x] 30-OCT-2011
ACC091 How-to create new lookup data from a list of values select list [11.1.1.x] 04-OCT-2011
JPU076 Programmatically switching LOV queries at run time [11.1.2] 06-SEP-2011
ACC087 How-to improve LOV performance with shared AM in ADF BC [11.1.1.x] 29-JUL-2011
ACC070 How-to build ADF dependent list boxes with Web Services [11.1.1.x] 21-JAN-2011
ACC069 How-to create a custom LOV using bounded task flows [11.1.1.x] 18-JAN-2011
ACC062 How-to use the af:autoSuggestBehavior component tag with ADF bound data sources [11.1.1.x] 19-OCT-2010
ACC055 How-to build a single select component with images in select items [11.1.1.x] 03-SEP-2010
JPU030 Enabling LOVs for Dynamic ViewObject attributes [11.1.1.3] 26-JUL-2010
LJE010 The native AutoSuggest behavior [11.1.1.x] 25-NOV-2009
JPU002 Tips on LOV Runtime [11.1.1.1] 05-AUG-2009
ACC047 How-to build a select one choice displaying hierarchical selection data [11.1.1.x] 06-JUN-2008

Message Handling

LBO003 Quicky 3 : Adding Error, Info and Warning messages [11.1.1.x] 03-OCT-2011
JPU074 Clearing the stale messages from the previous request on client side validation error [11.1.2] 28-JUL-2011
JPU061 Customizing Business Components Error Messages [11.1.1.4] 25-MAR-2011
SMU144 Customizing Application Error Handler to Support Informational Messages [11.1.1.0] 20-MAR-2009 Scott schema
The base ADF product only distinguishes between warnings and errors, so there is no default way to get a JSF message with severity of INFO. This example includes a CustomErrorHandler class that implements handling for informational messages. The addInformationMessageTest() method in the AppModule custom java class adds an informational message by using the addWarning() API, passing a custom subtype of JboWarning called InformationalMessage. Due to the way warnings are wrapped before they are passed to the custom error handler's getDisplayMessage() method by the ADF framework, the InformationalMessage constructor sets a value into the error parameters that the CustomErrorHandler uses to recognize the warning subtype as an informational message. The overridden getDisplayMessage() method in the error handler class detects whether the exception is an informational warning, and if it is, it adds an informational message to the FacesContext. It uses the setProperty() and getProperty() API of the JboWarning object to set a flag it can use to detect whether the exception has already been reported by this custom mechanism. This is required because ADF will invoke the getDisplayMessage() two times for each exception reported, later only one of which gets reported to the user. Run the Page.jspx to try the example. To see an error be reported, enter a salary of 5002 and click (Next). To try a warning, enter a salary of 5001 and click (Next). To see an informational message, click the (addInformationMessageTest) button. Notice that the custom error handler class is declaratively configured via the ErrorClass attribute on the root element of the DataBindings.cpx file (which shows as the ErrorClass property of the root element in the Property Inspector.

See also Steve Muench' undocumented 10.1.3.x samples 101, 107, 108, 130

Performance Optimization

Searching - Sorting - Filtering Data

SDA005 Sorting and Filtering By Model-Based LOV Display Value [11.1.1.6] 30-MAY-2012
PLI002 Google-like Search and LOVs using Oracle Text and ViewCriteria [11.1.1.4] 28-MAY-2012
JPU085 Creating View Criteria having Exists clause at run time [11.1.1.6] 08-MAY-2012
JPU083 Filtering af:table Without Using ADF Model [11.1.1.6] 14-MAR-2012
ACC098 How-to use multi select components in table filters [11.1.1.6] 28-FEB-2012
ACC092 ADF Web Service results for in-memory filtering [11.1.1.x] 31-OCT-2011
LBO005 Query Component with 'dynamic' view criteria [11.1.1.x] 18-OCT-2011
ACC085 af:query component complex field validation [11.1.1.x] 06-JUL-2011
JPU072 Overriding <af:query> display at run time [11.1.2] 01-JUL-2011
LBO019 Implementing Search for Multiple Attributes of a View Object [11.1.1.x] 05-APR-2011
JPU063 Programmatically resetting the <af:query> and search result table [11.1.1.4] 05-APR-2011
JPU059 Overriding ViewObjectImpl::rowQualifies(...) for in memory filtering of child nodes of a tree component [11.1.1.4] 14-MAR-2011
JPU058 Using <af:quickQuery> component for filtering child nodes of a tree [11.1.1.4] 12-MAR-2011
LBO018 Adding a Keystroke Filter to an ADF Shuttle Component [11.1.1.1x] 18-FEB-2011
JPU053 Customizing the <af:query> component display by overriding CriteriaItemAttributeHints [11.1.1.4] 22-JAN-2011
ACC067 How-to create a query form in a popup dialog [11.1.1.x] 11-JAN-2011
JPU052 Declaratively setting the current row key in a ViewObject [11.1.1.3] 09-JAN-2011
SMU160 Conditionally Auto-Executing af:query Search Form Based on User Input [11.1.1.2] 31-DEC-2010
JPU049 Sorting a Transient ViewObject [11.1.1.3] 08-DEC-2010
JPU048 Using oracle.jbo.domain.Array with ViewCriteria [11.1.1.3] 02-DEC-2010
LBO015 Change a Viewobjects’ Query on the Fly [11.1.1.x] 26-NOV-2010
ACC061 How-to text search in a rendered ADF bound tree [11.1.1.x] 14-OCT-2010
JPU042 Creating View Criteria having Bind Variables at run time [11.1.1.3] 12-OCT-2010
ACC059 How-to filter ADF bound tables by date range [11.1.1.4] 06-OCT-2010
ACC016 How-to customize the ADF Faces Table Filter [11.1.1.x] 03-AUG-2010
ACC054 Search form using ADF WS Data Control and Complex input types [11.1.1.x] 18-JUN-2010
JPU018 Using transient attributes to improve the usability of Query Panel [11.1.1.2] 18-MAR-2010
JPU015 Search by child attributes on a tree table [11.1.1.2] 15-JAN-2010
SMU158 Performing Custom View Criteria Item Search Form Validation [11.1.1.2] 26-DEC-2009
JPU014 Conditionally displaying search form parameters [11.1.1.2] 22-DEC-2009
JPU010 Displaying pre-executed query result in a search form [11.1.1.2] 20-NOV-2009
SMU150 Filter a Tree Showing Necessary Parent Nodes for Matches [11.1.1.1] 15-SEP-2009 SCOTT schema
SMU146 Programmatically Manipulating a Table's QBE Filter Fields [1.1.1.1] 14-AUG-2009 SCOTT schema
SMU139 Making String Attributes Use the 'StartsWith' Operator in QuickQuery [11.1.1.0] 12-DEC-2008
SMU136 a Checkbox to Toggle a Custom SQL Predicate on an LOV's Search Form [11.1.1.0.0] 19-NOV-2008
SMU135 Using the queryPerformed Property of the Search Binding to Show a 'No Records Found' Message [11.1.1.0.0] 09-NOV-2008
ACC030 How-to intercept and modify table filter values [11.1.1.x] 15-APR-2008
ACC046 Building a search form that displays the results in a task flow [11.1.1.x] 03-APR-2008

See also Steve Muench' undocumented 10.1.3.x samples 106, 113 and 114

Servlet Integration

UIShell - Dynamic Tabs and Regions

SDA004 UIShell with Dynamic Tabs [11.1.2] 07-OCT-2011
SDA003 UIShell with Dynamic Tabs [11.1.1.4] 07-OCT-2011
SDA002 UIShell with Menu Driving a Dynamic Region [11.1.2] 07-JUL-2011
SDA001 UIShell with Menu Driving a Dynamic Region [11.1.1.4] 07-JUL-2011
SMU157 Programmatically Displaying Task Flows in the ADF UI Shell [11.1.1.2] 26-DEC-2009
This is a ready-built version of the UI Shell demo application that you can build yourself by following the step-by-step tutorial Oracle User Interface Shell. It illustrates various programmatic ways to open a task flow in the ADF UI Shell. Try the demo by running the First.jspx page. Each of the links in the "Choose your activity" area open a separate task flow in a tab in the UI shell. Clicking a second time on a link will activate an existing task flow tab if it already exists, rather than opening a second instance of the same task flow. The Second.jspx page (to which you can navigate by clicking on the "Second" tab) illustrates menu items under the "Action" menu that each opens a distinct task flow. In this case, clicking a second time on a given menu item will open additional instances of the same task flow in the shell if one/some happen to already be open. It also illustrates toolbar icons that perform shell functions. The [1] icon opens the same task flow as the first menu item. The [2] icon marks the current tab as being "dirty". If you try to close a dirty tab, you'll see a warning dialog. The [3] icon marks a tab as not-dirty. The Third.jspx page illustrates opening task flows as the only content in the shell (i.e. no tabs). It also shows that a button in one task flow can open a taskflow in the shell.

User Interface Patterns

LBO025 Even Fancier ! Multi Master Multi Detail and how to highlight related detail records [11.1.1.x] 29-FEB-2012
LBO024 Master Detail or how to Highlight Related Detail Records [11.1.1.x] 06-FEB-2012
JPU068 Soft deletion of rows [11.1.1.5] 18-MAY-2011
JPU062 Displaying an edit dialog on double click of a table row [11.1.1.4] 29-MAR-2011
LBO017 Using jQuery and ADF to provide a fading user feedback [11.1.1.x] 31-JAN-2011
JPU026 Model driven approach for building Dynamic UI [11.1.1.3] 16-JUN-2010
LJE011 ContextInfo to implement a common Fusion Applications pattern [11.1.1.x] 26-NOV-2009
EBI004 Display detail records in a dynamic ADF FormLayout [11.1.1.x] 06-FEB-2009
LJE015 Creating an alternative re-parent detail records using popup and drag & drop – assigning Employees to another Department in an intuitive way [11.1.1.x] 30-OCT-2008

Utility Code

Validation

JPU078 Validating The Entity Collection When You Commit the Transaction [11.1.2.1] 09-OCT-2011
JPU051 Updating supporting business data before committing the transaction [11.1.1.3] 24-DEC-2010
JPU044 Converting user input to uppercase [11.1.1.3] 03-NOV-2010
JPU043 Preventing user input on a fusion web page when the server is busy [11.1.1.3] 15-OCT-2010
JPU016 Customizing the execution of <af:fileDownloadActionListener> to validate user input [11.1.1.2] 20-JAN-2010
SMU159 Using ViewAccessor to Perform Attribute-Level Validation [11.1.1.2] 11-JAN-2010
This example illustrates two techniques to perform an attribute-level validation based on a view-accessor with a bind variable that needs to be bound to the value that is attempting to be set. For an entity-level validation, you can use a view accessor based list validator for this purpose. However, for the attribute-level use case - since you cannot refer to the newValue expression in the view accessor bind variable default Groovy expression - you need to either use a groovy expression validator, a Java method validator, or a custom validation rule. This workspace provides examples of the first and the last of these three options. The Java method validation alternative is left as an exercise to the reader. The Emp EO has two view accessors: CheckDivisibilityBy3 based on view object definition test.ValidationViewObject, configured to have the VarModulo value set to 3, and CheckDivisibilityBy7 based on the same view object, configured to have the VarModulo value set to 7 The attribute-level Groovy validator on the Sal attribute sets the value of the VarValue bind variable on the view accessor, then executes the query. It returns value if the view accessor's first() function returns a non-null result (i.e. at least one row was found). The example also illustrates a more generic approach that doesn't rely on Groovy. I created a new, reusable validation rule called AttrLevelViewAccessorValidator. I've used an instance of it on the Comm attribute, declaratively configuring the validation rule beans two properties: attrNameToBindNewValueTo = "VarValue" and viewAccessorName = "CheckDivisibilityBy7". Run the AM in the tester, and verify that you must enter a Sal value that is divisible by 3 and a Comm value that is divisible by 7. Of course, the example view object would normally be a more interesting query with one or more bind variables going against a table other than DUAL, but this simple query hopefully will get the basic idea across. If the value being validated were the key attribute of the target view object, you could have used the "Key Exists" validator based on a view accessor instead. This approach is valid when the query you need to validate needs to lookup something that is not the key attribute in the target VO used for validation.
SMU155 Avoid Adding a New Row to a Table Until Its Valid [11.1.1.2] 26-DEC-2009
This example illustrates an approach to prevent a newly-created row from getting automatically added to a view object's rowset (shown in a table) until it passes all validation rules. Typically a newly-created row will be added to a rowset for any view object based on the same entity object. This example contains a framework extension class for entity objects NotifyChangeOnValidatedEntityImpl and a framework extension class for view objects OnlyAddNewRowIfValidViewObjectImpl. The entity framework extension class overrides the validateEntity() framework method to send an attribute change notification after the entity object successfully passes validation. The view object framework extension class exposes getter and setter methods for a boolean property named onlyAddNewRowIfValid and the overridden rowQualifies() method ensures that a new row does not qualify for inclusion in the view object's rowsets unless it is valid. The AppModuleImpl class overrides the prepareSession() method to set the property on the DeptView1 view object instance. To run the demo, run the view1.jspx page. Click (Create) to create a new row. A data entry form appears at the top of the page. To cause a validation error to occur, leave the fields blank, or try entering a Dname value of upper-case X and a Loc value of upper-case Y. Notice that until the row validates, it's not added into the table.
LJE020 Implementing conditionally required input fields – by playing client side hide and seek [11.1.1.x] 17-DEC-2009
SMU153 Validating Exactly One Detail Row of a Given Type [11.1.1.1] 04-NOV-2009 Custom schema
This example illustrates two techniques for validating that a parent entity contains exactly one composed child entity of a given type. Start by running the CreateTables.sql script to create the EMAIL_MESSAGE and EMAIL_MESSAGE_RECIPIENTS tables. The example is a simple "Create an Email" application that allows you to create a new email message and add one or more recipients. Each recipient is of a particular RecipientType (P=Primary, C=CC, B=BCC). The rule being enforced is that there must be exactly one recipient of type "Primary". The validation is performed by an entity-level Script Expression validator on the parent Email entity object. This validator uses Groovy code to work with a view accessor named ValidateOnePrimary which is of type EmailRecipientsView and has the design-time-applied view criteria named PrimaryRecipient (criteria mode "Both") applied to it. This view criteria filters based on the MessageId and the RecipientType='P'. The view accessor is configured to pass the value of the current Email entity's Id attribute as the value of the view criteria's VarMessageId bind variable. Notice that the script validator allows multiple error messages to be defined. The validator's Groovy script executes the view accessor's query, raises one error using adf.error.raise(MESSAGE_KEY) if there are no rows returned and another error if more than one row is returned. If the email and its recipients validate successfully, then they are saved to the tables, but note that no real email is sent anywhere. The default expression for the EmailRecipient.RecipientType attribute uses an alternative approach to the view accessor in order to conditionally assign the default recipient type for a newly created EmailRecipient entity. The default expression is Email.Recipients.count("RecipientType == 'P' ? 1 : null") == 0 ? 'P' : 'C' which accesses the parent email message using the reverse association accessor named Email then accesses its rowset of recipients by references that email entity's Recipients association accessor attribute. Since the value of that expression is a RowSet we can use one of the built-in rowset, in-memory aggregation functions to calculate the count of the child EmailRecipient entity instances which have a RecipientType equal to P. The count() rowset aggregate function evaluates its String argument as a Groovy expression in the context of each row in the rowset over which it iterates. If the expression evaluates to null, then the count does not include that row. If the expression evaluates to non-null, then that row is counted. Finally, it uses a ternary expression so that if the count of EmailRecipient instances having RecipientType equals to P is zero, then it returns the default value of P, otherwise it returns the default value of C to represent a recipient being copied on the mail. The Email entity object includes the MessageText attribute of type ClobDomain, and both the Email.SenderEmail and EmailRecipient.RecipientEmailAddress attributes use a custom domain type EmailAddress which validates the format of an email address. The NewMailMessage.jsff page fragment uses the special <f:converter converterId="oracle.genericDomain"/> component to enable JSF to work properly with these three domain-valued attributes. The MailServer application module defines the custom method createNewMailAndPrimaryRecipient() which creates a new email message and the first email recipient row. The method is exposed on the client interface so that the default method call activity of the create-new-email bounded task flow can invoke it declaratively to prepare the service layer for the creation of a new email. The CustomViewObjectImpl class implement a generic feature to conditionally have rows in a view object's default rowset be inserted at the end. For view objects using this framework extension class as their base class, the feature "kicks in" if the VO has the "InsertRowsAtEnd" custom property set to some non-null value like "true". The EmailRecipientsView in the example uses this framework extension class as its base class and has this custom property set. To run the example, run the TestPage.jspx. You'll need to login as either user userone or usertwo, both of whose password is welcome1. Click on the button to create an "email" and then click (Send) to test the validation.
LJE008 Validation of Uploaded Files with the inputFile component [11.1.1.x] 14-SEP-2009
JPU004 How to Skip Validation? [11.1.1.1] 22-AUG-2009
ACC008 How-to use Captcha with ADF Faces and Oracle ADF [11.1.1.x] 17-JUL-2009
ACC010 How-to create a character input counter for text fields [11.1.1.x] 15-SEP-2008

See also Steve Muench' undocumented 10.1.3.x sample nr. 102, 105, 123, 124 and 127

Difference compared to previous revision
{| border="1" |- | [[#EBI014|EBI014]] | [https://github.com/biemond/jdev11g_examples/tree/master/ADFSecurity Using FMW IdentityStore for your User management] [11.1.1.x] 23-OCT-2011 [http://biemond.blogspot.nl/2011/10/using-fmw-identitystore-for-your-user.html [[image:info.png]]] |- | [[#ACC076|ACC076]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/76-insert-update-entity-protection-334423.zip Extending ADF Security to check ADF BC Entity attribute insert permissions] [11.1.1.x] 08-MAR-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/76-insert-update-entity-protection-334421.pdf [[image:info.png]]] |- | [[#ACC048|ACC048]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/48-adfsecuritymenuprotection-168521.zip XML Menu Model site menus protected with ADF Security and JAAS] [11.1.1.x] 13-MAY-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/48-sitemenu-protection-169190.pdf [[image:info.png]]] |- | [[#ACC014|ACC014]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/14-jaas-viewlayer-security-169142.pdf Custom JAAS Permissions in a ADF Security to implement UI security (no sample app available)] [11.1.1.x] 15-NOV-2008 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/14-jaas-viewlayer-security-169142.pdf [[image:info.png]]] |} ===BPM Integration=== ... {| border="1" |- | [[#EBI015|EBI015]] | [https://github.com/biemond/soa11g_examples/tree/master/HumanTaskListApp Working with the Human WorkList api and create your own WorkList application] [11.1.1.x] 26-OCT-2011 [http://biemond.blogspot.nl/2011/10/working-with-human-worklist-api-and.html [[image:info.png]]] |} ===Contextual Events=== ... {| border="1" |- | [[#ACC068|ACC068]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/68-contextual-event-table-selection-262529.zip How-to solve the known range change event problem in ADF contextual events ] [11.1.1.x] 16-JAN-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/68-contextual-event-table-selection-262503.pdf [[image:info.png]]] |- | [[#LBO016|LBO016]] | [http://technology.amis.nl/2010/12/28/adf-11g-dragn-drop-and-contextual-events/ Drag’n Drop and Contextual Events, no sample app] [11.1.1.x] 28-DEC-2010 [http://technology.amis.nl/2010/12/28/adf-11g-dragn-drop-and-contextual-events [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/CustomEventDispatcherSample.zip Building a custom event dispatcher for Contextual Events] [11.1.1.3] 16-SEP-2010 [http://jobinesh.blogspot.in/2010/09/custom-event-dispatcher-for-contextual.html [[image:info.png]]] |- | [[#CMU003|CMU003]] | [http://www.sagecomputing.com.au/chrism_blog/ProgrammaticContextualEventADFDemo.zip Programmatic Contextual Events] [version] 08-AUG-2010 [http://one-size-doesnt-fit-all.blogspot.com.au/2010/08/jdev-11g-programmatic-contextual-events.html [[image:info.png]]] |- | [[#ACC017|ACC017]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/dvtclickevent-168502.zip How-to invoke contextual events from a DVT graph component] [11.1.1.x] 11-MAR-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/17-dvt-click-event-169147.pdf [[image:info.png]]] |- | [[#JPU001|JPU001]] | [http://adf-samples.googlecode.com/files/ProgrammaticContextualEvent.zip Programmatically publishing Contextual Events] [11.1.1.1] 31-JUL-2009 [http://jobinesh.blogspot.in/2009/07/programmatically-publishing-contextual.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/PersonalisedBusinessComponents.zip Long living Dynamic Business Components] [11.1.2] 21-AUG-2011 [http://jobinesh.blogspot.in/2011/08/long-living-dynamic-business-components.html [[image:info.png]]] |- | [[#ACC031|ACC031]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/31-mdspowerusersample-168509.zip Metadata Services (MDS) Example: Power User vs. Normal User] [11.1.1.x] 21-JUN-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/31-mds-sample-169173.pdf [[image:info.png]]] |- | [[#LJE002|LJE002]] | [http://technology.amis.nl/wp-content/uploads/images/impatientmansmds.zip Persisted run time user UI personalization or: Impatient man's MDS] [11.1.1.x] 09-JAN-2009 [http://technology.amis.nl/2009/01/09/adf-11g-persisted-run-time-user-ui-personalization-or-impatient-mans-mds [[image:info.png]]] ... | [http://technology.amis.nl/wp-content/uploads/images/ProgressIndicator.zip ADF Faces: Handle task in background process and show real time progress indicator for asynchronous job using Server Push in ADF] [11.1.1.4] 19-OCT-2011 [http://technology.amis.nl/2011/10/19/adf-faces-handle-task-in-background-process-and-show-real-time-progress-indicator-for-asynchronous-job-using-server-push-in-adf [[image:info.png]]] |- | [[#ACC065|ACC065]] | [http://www.oracle.com/technetwork/developer-tools/jdev/learnmore/65-activedataservicestwittersample-191316.zip Active Data Service Sample - Twitter Client] [11.1.1.x] 01-DEC-2010 [http://www.oracle.com/technetwork/developer-tools/jdev/learnmore/65-activedataservicestwittersample-191314.pdf [[image:info.png]]] |- | [[#SMU156|SMU156]] | [http://java.net/projects/smuenchadf/sources/samples/content/UseSharedAMForUITest.zip Use AutoRefresh VO in Shared AM with Optimized Polling to Show Latest Data in a Table] [11.1.1.2] 26-DEC-2009 ... |||This example illustrates how to use an Auto-Refresh view object in a shared application module to display the latest database changes in a table without eagerly requerying the view object. The DeptView view object has its AutoRefresh property set to true and the Model project defines a shared application module instance named AppModule on the Business Components > Application Module Instances panel of the project properties. The AppModuleDataControl entry in the dataControlUsages section of the DataBindings.cpx file in the ViewController project has been configured to use the AppModuleShared configuration so that the UI works with a shared application module instance. As an optimization, the DeptView view object overrides the processDatabaseChangeNotification() method to keep track of the System.currentTimeMillis() in a local member field. The view object's getLastRequery() is exposed on the client interface and is accessed by the DepartmentPage backing bean's via a method action binding. That bean's onPollTimerExpired() method only bothers to add the table UI component as a partial target if the time the view object was last requeried is greater than the time the table was last PPR'd (which it tracks in a viewScope attribute). To try the demo, run the Departments.jspx page. If you'd like try accessing the same page from several different browsers (e.g. Firefox, Internet Explorer, Chrome) to simulate multiple, distinct user sessions. In SQL Plus (or the JDeveloper SQL Developer worksheet window) try insert, updating, or deleting rows in the DEPT table and committing the changes. Sometime in the next 15 seconds, the different browser user's should update to reflect the changes automatically. |- | [[#EBI007|EBI007]] | [http://www.sbsframes.nl/jdeveloper/ADF_EJB.zip ADF Data push with Active Data Service] [11.1.1.2] 05-DEC-2009 [http://biemond.blogspot.nl/2009/12/adf-data-push-with-active-data-service.html [[image:info.png]]] |} ===Deployment=== ... | [http://adf-samples.googlecode.com/files/DefaultPatternSample.zip Format date for a Locale] [11.1.1.1] 17-SEP-2009 [http://jobinesh.blogspot.in/2009/09/format-date-for-locale.html [[image:info.png]]] |- | [[#EBI005|EBI005]] | [http://www.sbsframes.nl/jdeveloper/Locale.zip Change language / Locale in ADF] [11.1.1.x] 25-FEB-2009 [http://biemond.blogspot.nl/2009/02/change-language-locale-in-adf.html [[image:info.png]]] |} ===List of Values - Select Lists=== ... {| border="1" |- | [[#ACC090|ACC090]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/90-filter-adf-bound-lists-508191.zip How-to filter ADF bound lists] [11.1.1.x] 30-OCT-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/90-filter-adf-bound-lists-508190.pdf [[image:info.png]]] |- | [[#ACC091|ACC091]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/91-addrowfromlov-513621.zip How-to create new lookup data from a list of values select list] [11.1.1.x] 04-OCT-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/91-addrowfromlov-513620.pdf [[image:info.png]]] |- | [[#JPU076|JPU076]] | [http://adf-samples.googlecode.com/files/DynamicLOVSwitchingModified.zip Programmatically switching LOV queries at run time] [11.1.2] 06-SEP-2011 [http://jobinesh.blogspot.in/2011/09/programmatically-switching-lov-queries.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/DynamicLOVSwitchingModified.zip Programmatically switching LOV queries at run time] [11.1.2] 06-SEP-2011 [http://jobinesh.blogspot.in/2011/09/programmatically-switching-lov-queries.html [[image:info.png]]] |- | [[#ACC087|ACC087]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/87-lov-using-shared-am-444771.zip How-to improve LOV performance with shared AM in ADF BC ] [11.1.1.x] 29-JUL-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/87-lov-using-shared-am-444769.pdf [[image:info.png]]] |- | [[#ACC070|ACC070]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/70-dependent-listboxes-using-ws-285561.zip How-to build ADF dependent list boxes with Web Services] [11.1.1.x] 21-JAN-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/70-dependent-listboxes-using-ws-286107.pdf [[image:info.png]]] |- | [[#ACC069|ACC069]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/69-custom-lov-with-btf-276183.zip How-to create a custom LOV using bounded task flows ] [11.1.1.x] 18-JAN-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/69-custom-lov-with-btf-276178.pdf [[image:info.png]]] |- | [[#ACC062|ACC062]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/autosuggestsample-177812.zip How-to use the af:autoSuggestBehavior component tag with ADF bound data sources] [11.1.1.x] 19-OCT-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/62-autosuggestbehavior-177811.pdf [[image:info.png]]] |- | [[#ACC055|ACC055]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/selectonechoicewithflag-170421.zip How-to build a single select component with images in select items ] [11.1.1.x] 03-SEP-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/55-selectonechoicewithimages-170420.pdf [[image:info.png]]] |- | [[#JPU030|JPU030]] | [http://adf-samples.googlecode.com/files/DynamicUIWithLOV.zip Enabling LOVs for Dynamic ViewObject attributes] [11.1.1.3] 26-JUL-2010 [http://jobinesh.blogspot.in/2010/07/enabling-lovs-for-dynamic-viewobject.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/QueryPanelLOV.zip Tips on LOV Runtime] [11.1.1.1] 05-AUG-2009 [http://jobinesh.blogspot.in/2009/08/tips-on-lov-runtime.html [[image:info.png]]] |- | [[#ACC047|ACC047]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/47-hierarchicalselectonechoice-168520.zip How-to build a select one choice displaying hierarchical selection data] [11.1.1.x] 06-JUN-2008 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/47-select-one-choice-groups-169189.pdf [[image:info.png]]] |} ===Message Handling=== ... {| border="1" |- | [[#LBO003|LBO003]] | [http://adfsamplecode.googlecode.com/files/messages.zip Quicky 3 : Adding Error, Info and Warning messages] [11.1.1.x] 03-OCT-2011 [http://lucbors.blogspot.nl/2011/10/adf-11g-quicky-3-adding-error-info-and.html [[image:info.png]]] |- | [[#JPU074|JPU074]] | [http://adf-samples.googlecode.com/files/ClearAllMessages.zip Clearing the stale messages from the previous request on client side validation error] [11.1.2] 28-JUL-2011 [http://jobinesh.blogspot.in/2011/07/clearing-stale-messages-from-previous.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/BusinessComponentsErrorMessages.zip Customizing Business Components Error Messages] [11.1.1.4] 25-MAR-2011 [http://jobinesh.blogspot.in/2011/03/customizing-business-components-error.html [[image:info.png]]] |- | [[#SMU144|SMU144]] | [http://java.net/projects/smuenchadf/sources/samples/content/CustomAppLevelExceptionHandler.zip Customizing Application Error Handler to Support Informational Messages ] [11.1.1.0] 20-MAR-2009 Scott schema |- |||The base ADF product only distinguishes between warnings and errors, so there is no default way to get a JSF message with severity of INFO. This example includes a CustomErrorHandler class that implements handling for informational messages. The addInformationMessageTest() method in the AppModule custom java class adds an informational message by using the addWarning() API, passing a custom subtype of JboWarning called InformationalMessage. Due to the way warnings are wrapped before they are passed to the custom error handler's getDisplayMessage() method by the ADF framework, the InformationalMessage constructor sets a value into the error parameters that the CustomErrorHandler uses to recognize the warning subtype as an informational message. The overridden getDisplayMessage() method in the error handler class detects whether the exception is an informational warning, and if it is, it adds an informational message to the FacesContext. It uses the setProperty() and getProperty() API of the JboWarning object to set a flag it can use to detect whether the exception has already been reported by this custom mechanism. This is required because ADF will invoke the getDisplayMessage() two times for each exception reported, later only one of which gets reported to the user. Run the Page.jspx to try the example. To see an error be reported, enter a salary of 5002 and click (Next). To try a warning, enter a salary of 5001 and click (Next). To see an informational message, click the (addInformationMessageTest) button. Notice that the custom error handler class is declaratively configured via the ErrorClass attribute on the root element of the DataBindings.cpx file (which shows as the ErrorClass property of the root element in the Property Inspector. |} ... {| border="1" |- | [[#CMU006|CMU006]] | [http://one-size-doesnt-fit-all.blogspot.com.au/2011/06/www.sagecomputing.com.au/chrism_blog/RegionTaskFlowDeferredActivation111200.zip JDev 11.1.2.0.0 – af:showDetailItems and af:regions – the power of Facelets – part 3] [11.1.2] 21-JUN-2011 [http://one-size-doesnt-fit-all.blogspot.com.au/2011/06/jdev-111200-afshowdetailitems-and.html [[image:info.png]]] |- | [[#CMU004|CMU004]] | [http://one-size-doesnt-fit-all.blogspot.com.au/2011/06/www.sagecomputing.com.au/chrism_blog/RegionTaskFlowImmediateActivation.zip JDev 11.1.1.4.0 – af:showDetailItems and af:regions – immediate activation - part 1] [11.1.1.4] 20-JUN-2011 [http://one-size-doesnt-fit-all.blogspot.com.au/2011/06/jdev-111140-afshowdetailitems-and.html [[image:info.png]]] |- | [[#CMU005|CMU005]] | [http://one-size-doesnt-fit-all.blogspot.com.au/www.sagecomputing.com.au/chrism_blog/RegionTaskFlowProgrammaticActivation.zip JDev 11.1.1.4.0 – af:showDetailItems and af:regions – programmatic activation - part 2] [11.1.1.4] 20-JUN-2011 [http://one-size-doesnt-fit-all.blogspot.com.au/2011/06/jdev-111140-afshowdetailitems-and_20.html [[image:info.png]]] |} ===Searching - Sorting - Filtering Data=== ... {| border="1" |- | [[#SDA005|SDA005]] | [http://java.net/projects/smuenchadf/sources/samples/content/SortingFilteringByChoiceDisplayValue.zip Sorting and Filtering By Model-Based LOV Display Value] [11.1.1.6] 30-MAY-2012 [https://blogs.oracle.com/ATEAM_WEBCENTER/entry/sorting_and_filtering_by_model [[image:info.png]]] |- | [[#PLI002|PLI002]] | [http://dl.dropbox.com/u/35505502/QuickSearchApp.zip Google-like Search and LOVs using Oracle Text and ViewCriteria ] [11.1.1.4] 28-MAY-2012 [http://adfplus.blogspot.nl/2012/05/google-like-search-and-lovs-using.html#mor [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/FilterableTable.zip Filtering af:table Without Using ADF Model] [11.1.1.6] 14-MAR-2012 [http://jobinesh.blogspot.in/2012/03/filtering-aftable-without-using-adf.html [[image:info.png]]] |- | [[#ACC098|ACC098]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/98-multi-select-tablefilter-1534905.zip How-to use multi select components in table filters] [11.1.1.6] 28-FEB-2012 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/98-multi-select-tablefilter-1534904.pdf [[image:info.png]]] |- | [[#ACC092|ACC092]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/92-cache-ws-queries-523138.zipCaching ADF Web Service results for in-memory filtering] [11.1.1.x] 31-OCT-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/92-cache-ws-queries-523136.pdf [[image:info.png]]] |- | [[#LBO005|LBO005]] | [http://technology.amis.nl/wp-content/uploads/images/taskflowparams.zip Query Component with 'dynamic' view criteria] [11.1.1.x] 18-OCT-2011 [http://technology.amis.nl/2011/10/18/adf-11g-query-component-with-dynamic-view-criteria [[image:info.png]]] ... | [http://technology.amis.nl/wp-content/uploads/images/taskflowparams.zip Query Component with 'dynamic' view criteria] [11.1.1.x] 18-OCT-2011 [http://technology.amis.nl/2011/10/18/adf-11g-query-component-with-dynamic-view-criteria [[image:info.png]]] |- | [[#ACC085|ACC085]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/85-querycomponent-fieldvalidation-427198.zip af:query component complex field validation] [11.1.1.x] 06-JUL-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/85-querycomponent-fieldvalidation-427197.pdf [[image:info.png]]] |- | [[#JPU072|JPU072]] | [http://adf-samples.googlecode.com/files/VCOverrideSample.zip Overriding display at run time] [11.1.2] 01-JUL-2011 [http://jobinesh.blogspot.in/2011/07/overriding-display-at-run-time.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/CustomControlHintsSample.zip Customizing the component display by overriding CriteriaItemAttributeHints] [11.1.1.4] 22-JAN-2011 [http://jobinesh.blogspot.in/2011/01/customizing-component-display-by.html [[image:info.png]]] |- | [[#ACC067|ACC067]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/67-query-form-in-popup-253862.zip How-to create a query form in a popup dialog ] [11.1.1.x] 11-JAN-2011 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/67-queryform-in-popup-253861.pdf [[image:info.png]]] |- | [[#JPU052|JPU052]] | [http://adf-samples.googlecode.com/files/CustomRowSelection.zip Declaratively setting the current row key in a ViewObject] [11.1.1.3] 09-JAN-2011 [http://jobinesh.blogspot.in/2011/01/declaratively-setting-current-row-key.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/CustomRowSelection.zip Declaratively setting the current row key in a ViewObject] [11.1.1.3] 09-JAN-2011 [http://jobinesh.blogspot.in/2011/01/declaratively-setting-current-row-key.html [[image:info.png]]] |- | [[#SMU160|SMU160]] | [http://java.net/projects/smuenchadf/sources/samples/content/AutoQueryOnSecondLOVPopulationInAFQuery.zip Conditionally Auto-Executing af:query Search Form Based on User Input ] [11.1.1.2] 31-DEC-2010 [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#JPU049|JPU049]] | [http://adf-samples.googlecode.com/files/SortingTransientVO.zip Sorting a Transient ViewObject] [11.1.1.3] 08-DEC-2010 [http://jobinesh.blogspot.in/2010/12/sorting-transient-viewobject.html [[image:info.png]]] ... | [http://technology.amis.nl/wp-content/uploads/2010/11/switchDataSource.zip Change a Viewobjects’ Query on the Fly] [11.1.1.x] 26-NOV-2010 [http://technology.amis.nl/2010/11/26/adf-11g-change-a-viewobjects-query-on-the-fly [[image:info.png]]] |- | [[#ACC061|ACC061]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/findinrenderedtree-177576.zip How-to text search in a rendered ADF bound tree] [11.1.1.x] 14-OCT-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/61search-in-rendered-trees-177577.pdf [[image:info.png]]] |- | [[#JPU042|JPU042]] | [http://adf-samples.googlecode.com/files/VCBindVariableSample.zip Creating View Criteria having Bind Variables at run time] [11.1.1.3] 12-OCT-2010 [http://jobinesh.blogspot.in/2010/10/creating-view-criteria-having-bind.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/VCBindVariableSample.zip Creating View Criteria having Bind Variables at run time] [11.1.1.3] 12-OCT-2010 [http://jobinesh.blogspot.in/2010/10/creating-view-criteria-having-bind.html [[image:info.png]]] |- | [[#ACC059|ACC059]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/filterbydaterange-jdev11-114-176654.zip How-to filter ADF bound tables by date range] [11.1.1.4] 06-OCT-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/59-table-filter-by-data-range-176653.pdf [[image:info.png]]] |- | [[#ACC016|ACC016]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/tablefiltersample-168501.zip How-to customize the ADF Faces Table Filter] [11.1.1.x] 03-AUG-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/16-custom-table-filter-169145.pdf [[image:info.png]]] |- | [[#ACC054|ACC054]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/54-wscomplexinputtype-168526.zip Search form using ADF WS Data Control and Complex input types] [11.1.1.x] 18-JUN-2010 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/54-ws-complex-input-type-169197.pdf [[image:info.png]]] |- | [[#JPU018|JPU018]] | [http://adf-samples.googlecode.com/files/CustomizedBetweenOperands.zip Using transient attributes to improve the usability of Query Panel] [11.1.1.2] 18-MAR-2010 [http://jobinesh.blogspot.in/2010/03/using-transient-attributes-to-improve.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/TreetableSearch.zip Search by child attributes on a tree table] [11.1.1.2] 15-JAN-2010 [http://jobinesh.blogspot.in/2010/01/search-by-child-attributes-on-tree.html [[image:info.png]]] |- | [[#SMU158|SMU158]] | [http://java.net/projects/smuenchadf/sources/samples/content/RequireAtLeastThreeCharactersInSelectivelyRequiredFieldWithStartsWithOper.zip Performing Custom View Criteria Item Search Form Validation ] [11.1.1.2] 26-DEC-2009 [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#JPU014|JPU014]] | [http://adf-samples.googlecode.com/files/HideQueryParameter.zip Conditionally displaying search form parameters] [11.1.1.2] 22-DEC-2009 [http://jobinesh.blogspot.in/2009/12/conditional-display-of-search-form.html [[image:info.png]]] ... | [http://adf-samples.googlecode.com/files/QuerySample.zip Displaying pre-executed query result in a search form] [11.1.1.2] 20-NOV-2009 [http://jobinesh.blogspot.in/2009/11/displaying-pre-executed-query-result-in.html [[image:info.png]]] |- | [[#SMU150|SMU150]] | [http://java.net/projects/smuenchadf/sources/samples/content/FilterTreeShowingInterimParentNodes.zip Filter a Tree Showing Necessary Parent Nodes for Matches] [11.1.1.1] 15-SEP-2009 SCOTT schema [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#SMU146|SMU146]] | [http://java.net/projects/smuenchadf/sources/samples/content/ClearTableColumnFilterFields.zip Programmatically Manipulating a Table's QBE Filter Fields ] [1.1.1.1] 14-AUG-2009 SCOTT schema [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#SMU139|SMU139]] | [http://java.net/projects/smuenchadf/sources/samples/content/QuickQueryDefaultsToLike.zip Making String Attributes Use the 'StartsWith' Operator in QuickQuery] [11.1.1.0] 12-DEC-2008 [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#SMU136|SMU136]] | [http://java.net/projects/smuenchadf/sources/samples/content/CustomLOVSearchField.zipIntroducing a Checkbox to Toggle a Custom SQL Predicate on an LOV's Search Form] [11.1.1.0.0] 19-NOV-2008 [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#SMU135|SMU135]] | [http://java.net/projects/smuenchadf/sources/samples/content/DisplayNoRecordsFoundMessage.zip Using the queryPerformed Property of the Search Binding to Show a 'No Records Found' Message] [11.1.1.0.0] 09-NOV-2008 [https://blogs.oracle.com/smuenchadf/resource/examples [[image:info.png]]] |- | [[#ACC030|ACC030]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/30-tablefilter-168508.zip How-to intercept and modify table filter values] [11.1.1.x] 15-APR-2008 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/30-table-filter-queries-169172.pdf [[image:info.png]]] |- | [[#ACC046|ACC046]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/46-taskflowusecases1-168519.zip Building a search form that displays the results in a task flow] [11.1.1.x] 03-APR-2008 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/46-search-result-in-taskflow-169188.pdf [[image:info.png]]] |} See also Steve Muench' [http://blogs.oracle.com/smuenchadf/resource/examples undocumented 10.1.3.x samples] 106, 113 and 114 ... {| border="1" |- | [[#SDA004|SDA004]] | [https://blogs.oracle.com/jheadstart/resource/dyntabs/DynamicTabs1112.zip UIShell with Dynamic Tabs] [11.1.2] 07-OCT-2011 [https://blogs.oracle.com/jheadstart/entry/core_adf11_uishell_with_dynamic [[image:info.png]]] |- | [[#SDA003|SDA003]] | [https://blogs.oracle.com/jheadstart/resource/dyntabs/DynamicTabs11114.zip UIShell with Dynamic Tabs] [11.1.1.4] 07-OCT-2011 [https://blogs.oracle.com/jheadstart/entry/core_adf11_uishell_with_dynamic [[image:info.png]]] |- | [[#SDA002|SDA002]] | [https://blogs.oracle.com/jheadstart/resource/demos/ReusableTaskFlowsStart1112.zip UIShell with Menu Driving a Dynamic Region] [11.1.2] 07-JUL-2011 [https://blogs.oracle.com/jheadstart/entry/core_adf11_uishell_with_menu [[image:info.png]]] |- | [[#SDA001|SDA001]] | [https://blogs.oracle.com/jheadstart/resource/demos/ReusableTaskFlowsStart11114.zip UIShell with Menu Driving a Dynamic Region] [11.1.1.4] 07-JUL-2011 [https://blogs.oracle.com/jheadstart/entry/core_adf11_uishell_with_menu [[image:info.png]]] |- | [[#SMU157|SMU157]] | [http://java.net/projects/smuenchadf/sources/samples/content/UIShellDemo.zip Programmatically Displaying Task Flows in the ADF UI Shell] [11.1.1.2] 26-DEC-2009 ... {| border="1" |- | [[#LBO025|LBO025]] | [http://adfsamplecode.googlecode.com/files/HighlightRelated%20-%20Part2.zip Even Fancier ! Multi Master Multi Detail and how to highlight related detail records] [11.1.1.x] 29-FEB-2012 [http://lucbors.blogspot.nl/2012/02/adf-11g-even-fancier-multi-master-multi.html [[image:info.png]]] |- | [[#LBO024|LBO024]] | [http://adfsamplecode.googlecode.com/files/HighlightRelated.zipFancy Master Detail or how to Highlight Related Detail Records] [11.1.1.x] 06-FEB-2012 [http://lucbors.blogspot.nl/2012/02/adf-11g-fancy-master-detail-or-how-to.html [[image:info.png]]] |- | [[#JPU068|JPU068]] | [http://adf-samples.googlecode.com/files/SoftDeleteSample.zip Soft deletion of rows] [11.1.1.5] 18-MAY-2011 [http://jobinesh.blogspot.in/2011/05/soft-deletion-of-rows.html [[image:info.png]]] ... | [http://technology.amis.nl/blog/wp-content/uploads/ADFContextInfo.zip ContextInfo to implement a common Fusion Applications pattern] [11.1.1.x] 26-NOV-2009 [http://technology.amis.nl/2009/11/26/adf-11g-contextinfo-to-implement-a-common-fusion-applications-pattern [[image:info.png]]] |- | [[#EBI004|EBI004]] | [http://www.sbsframes.nl/jdeveloper/DynamicForm.zip Display detail records in a dynamic ADF FormLayout] [11.1.1.x] 06-FEB-2009 [http://biemond.blogspot.nl/2009/02/display-detail-records-in-dynamic-adf.html [[image:info.png]]] |- | [[#LJE015|LJE015]] | [http://technology.amis.nl/wp-content/uploads/images/hrmdragndrop.zip Creating an alternative re-parent detail records using popup and drag & drop – assigning Employees to another Department in an intuitive way] [11.1.1.x] 30-OCT-2008 [http://technology.amis.nl/2008/10/30/adf-11g-richfaces-creating-an-alternative-re-parent-detail-records-using-popup-and-drag-drop-assigning-employees-to-another-department-in-an-intuitive-way [[image:info.png]]] ... {| border="1" |- | [[#EBI013|EBI013]] | [http://biemond.blogspot.nl/2011/01/some-handy-code-for-your-managed-beans.html Some more handy code for your managed Beans ( ADF & JSF )] [11.1.1.x] 23-JAN-2011 [http://biemond.blogspot.nl/2011/01/some-handy-code-for-your-managed-beans.html [[image:info.png]]] |- | [[#EBI012|EBI012]] | [http://biemond.blogspot.nl/2009/03/some-handy-code-for-backing-beans-adf.html Some handy code for backing beans ( ADF & JSF )] [11.1.1.x] 14-MAR-2009 [http://biemond.blogspot.nl/2009/03/some-handy-code-for-backing-beans-adf.html [[image:info.png]]] |} ===Validation=== ... | [http://technology.amis.nl/blog/wp-content/uploads/ConditionallyRequiredFields.zip Implementing conditionally required input fields – by playing client side hide and seek] [11.1.1.x] 17-DEC-2009 [http://technology.amis.nl/2009/12/17/adf-11g-implementing-conditionally-required-input-fields-by-playing-client-side-hide-and-seek [[image:info.png]]] |- | [[#SMU153|SMU153]] | [http://java.net/projects/smuenchadf/sources/samples/content/ValidateOnlyOnePrimaryEmailForMessage.zip Validating Exactly One Detail Row of a Given Type] [11.1.1.1] 04-NOV-2009 Custom schema |- |||This example illustrates two techniques for validating that a parent entity contains exactly one composed child entity of a given type. Start by running the CreateTables.sql script to create the EMAIL_MESSAGE and EMAIL_MESSAGE_RECIPIENTS tables. The example is a simple "Create an Email" application that allows you to create a new email message and add one or more recipients. Each recipient is of a particular RecipientType (P=Primary, C=CC, B=BCC). The rule being enforced is that there must be exactly one recipient of type "Primary". The validation is performed by an entity-level Script Expression validator on the parent Email entity object. This validator uses Groovy code to work with a view accessor named ValidateOnePrimary which is of type EmailRecipientsView and has the design-time-applied view criteria named PrimaryRecipient (criteria mode "Both") applied to it. This view criteria filters based on the MessageId and the RecipientType='P'. The view accessor is configured to pass the value of the current Email entity's Id attribute as the value of the view criteria's VarMessageId bind variable. Notice that the script validator allows multiple error messages to be defined. The validator's Groovy script executes the view accessor's query, raises one error using adf.error.raise(MESSAGE_KEY) if there are no rows returned and another error if more than one row is returned. If the email and its recipients validate successfully, then they are saved to the tables, but note that no real email is sent anywhere. The default expression for the EmailRecipient.RecipientType attribute uses an alternative approach to the view accessor in order to conditionally assign the default recipient type for a newly created EmailRecipient entity. The default expression is Email.Recipients.count("RecipientType == 'P' ? 1 : null") == 0 ? 'P' : 'C' which accesses the parent email message using the reverse association accessor named Email then accesses its rowset of recipients by references that email entity's Recipients association accessor attribute. Since the value of that expression is a RowSet we can use one of the built-in rowset, in-memory aggregation functions to calculate the count of the child EmailRecipient entity instances which have a RecipientType equal to P. The count() rowset aggregate function evaluates its String argument as a Groovy expression in the context of each row in the rowset over which it iterates. If the expression evaluates to null, then the count does not include that row. If the expression evaluates to non-null, then that row is counted. Finally, it uses a ternary expression so that if the count of EmailRecipient instances having RecipientType equals to P is zero, then it returns the default value of P, otherwise it returns the default value of C to represent a recipient being copied on the mail. The Email entity object includes the MessageText attribute of type ClobDomain, and both the Email.SenderEmail and EmailRecipient.RecipientEmailAddress attributes use a custom domain type EmailAddress which validates the format of an email address. The NewMailMessage.jsff page fragment uses the special component to enable JSF to work properly with these three domain-valued attributes. The MailServer application module defines the custom method createNewMailAndPrimaryRecipient() which creates a new email message and the first email recipient row. The method is exposed on the client interface so that the default method call activity of the create-new-email bounded task flow can invoke it declaratively to prepare the service layer for the creation of a new email. The CustomViewObjectImpl class implement a generic feature to conditionally have rows in a view object's default rowset be inserted at the end. For view objects using this framework extension class as their base class, the feature "kicks in" if the VO has the "InsertRowsAtEnd" custom property set to some non-null value like "true". The EmailRecipientsView in the example uses this framework extension class as its base class and has this custom property set. To run the example, run the TestPage.jspx. You'll need to login as either user userone or usertwo, both of whose password is welcome1. Click on the button to create an "email" and then click (Send) to test the validation. |- ... | [http://jobinesh.blogspot.in/2009/08/how-to-skip-validation.html How to Skip Validation?] [11.1.1.1] 22-AUG-2009 [http://jobinesh.blogspot.in/2009/08/how-to-skip-validation.html [[image:info.png]]] |- | [[#ACC008|ACC008]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/08-captcha-168491.zip How-to use Captcha with ADF Faces and Oracle ADF] [11.1.1.x] 17-JUL-2009 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/08-captcha-169127.pdf [[image:info.png]]] |- | [[#ACC010|ACC010]] | [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/10-charcounter-168492.zip How-to create a character input counter for text fields] [11.1.1.x] 15-SEP-2008 [http://www.oracle.com/technetwork/developer-tools/adf/learnmore/10-char-input-counter-169133.pdf [[image:info.png]]] |} See also Steve Muench' [http://blogs.oracle.com/smuenchadf/resource/examples undocumented 10.1.3.x sample] nr. 102, 105, 123, 124 and 127
 
 
Close
loading
Please Confirm
Close