Mar 22, 2006

ADF JSF - Διαχείριση Παραμετροποιημένων Όψεων (Parameterized Views)

Η έκδοση 10.1.3 του JDeveloper προσφέρει προηγμένες δυνατότητες διαχείρισης παραμετροποιημένων όψεων (parameterized views) των ADF BC. Το θέμα που θα μας απασχολήσει σε αυτό το άρθρο είναι η εμφάνιση παραμετροποιημένων όψεων σε μια σελίδα JSF, χωρίς να είναι απαραίτητη η κατάθεση από το User Interface των παραμέτρων της, αλλά με τρόπο δηλωτικό κατά την σχεδίαση της ίδιας της σελίδας.

Ας ορίσουμε λοιπόν μια παραμετροποίησιμη όψη. Στην παρούσα έκδοση του JDeveloper υποστηρίζεται η δήλωση παραμέτρων είτε με τη μορφή ερωτηματικών (?), είτε με αριθμητική μορφή (π.χ. :1) είτε (και αυτό είναι νέο χαρακτηριστικό) με την δήλωση του ονόματος της παραμέτρου. Ένα τέτοιο παράδειγμα διαφαίνεται στις επόμενες εικόνες όπου έχει οριστεί μια παραμετροποίησιμη όψη, που φιλτράρει πληροφορία σύμφωνα με την ταυτότητα του συνδεδεμένου χρήστη.



Η δημιουργία της παραμέτρου ακολουθεί.

Η ενσωμάτωση της παραμετροποιημένης όψης σε μια σελίδα JSF είναι εύκολη υπόθεση με drag-and-drop διαδικασία. Ωστόσο εκτελώντας την σελίδα δεν θα προκύψουν στοιχεία, καθότι δεν έχουν δοθεί τιμές στις παραμέτρους της όψης. Προκειμένου να αρχικοποιήσουμε τις παραμέτρους αυτόματα στη σελίδα μας (χωρίς να φτιάξουμε κάποια input text boxes για τη λήψη τιμών - κάτι που θα αποτελέσει το θέμα ενός επόμενου άρθρου) χρειαζόνται να γίνουν κάποιες επιπλέον ενέργειες.Πρώτα από όλα, διαλέξτε από την παλέτα Data Control το στοιχείο ExecuteWithParams για την όψη που σας ενδιαφέρει και μεταφέρτε το στην σελίδα σας ως ADF Command Button.

Το αποτέλεσμα φαίνεται στην επόμενη εικόνα.

Για να αρχικοποιήσουμε τις παραμέτρους μεταφερόμαστε στα ADF-bindings της σελίδας κάνοντας δεξί click--> Goto Page Definition. Ανατρέχοντας στον Structure Editor και συγκεκριμένα executables-->variables, θα βρούμε τις παραμέτρους της όψης που μας ενδιαφέρει. Αυτό που απομένει είναι να ορίσουμε τιμές σε αυτές, από τον Property Inspector, χρησιμοποιώντας για παράδειγμα τα αντικείμενα που έχουν αποθηκευτεί στο request ή το session scope της εφαρμογής.

Αφότου έχουμε ορίσει τιμές για την παραμετροποιημένη όψη μας, στο τέλος πρέπει να δηλώσουμε το πότε θα εκτελεστεί η απόδοση τιμών. Στην ίδια οθόνη που βρισκόμαστε, πηγαίνουμε executables-->δεξί click-->insert inside executables-->invoke action. Σε αυτό το σημείο θα οριστεί μια ενέργεια που θα εκτελείται στην φόρτωση της σελίδας και κατ' ουσίαν θα αναθέτει τιμές στην παραμετροποιημένη όψη των δεδομένων. Είναι σημαντικό θα διαλέξουμε το όνομα του DataBinding event (ExecuteWithParams) κ τον χρόνο εκτέλεσης του (Refresh, τιμή prepareModel)


Αυτό ήταν όλο! Επιστρέφοντας στην σελίδα μας, μπορούμε να ορίσουμε ότι το ADF Command Button δεν θα είναι ορατό (property Rendered=false) και να δοκιμάσουμε την εφαρμογή μας.

Στην επόμενη σελίδα εμφανίζονται παραμετροποιημένα τα αποτελέσματα σύμφωνα με την ταυτότητα του χρήστη.

No comments: