Дефиниране на каскаден списък от стойности с Oracle JDeveloper 11g, интегриране на приложения и
Приложенията, които работят с големи количества данни, често изискват от потребителите да избират стойности от така наречените списъци за избор. В много случаи списъкът с валидни стойности, които могат да бъдат избрани за едно поле, зависи от избора, направен от потребителя в друго поле. Например, в приложение за глобална търговия, потребителят може първо да избере държава и по този начин да инструктира приложението да покаже списък с продукти за продажба в тази конкретна страна.
Възможността за опростяване на създаването на списъци със стойности (LOVs) за поддържане на този вид сценарий се превърна в един от най-често задаваните разширени въпроси в Oracle Application Development Framework (Oracle ADF) 11g (Oracle11g Application Development Framework). В тази колона искам да покажа колко лесна стана тази задача. За да направя това, искам да хвърля един бърз поглед върху предстоящото издание на Oracle JDeveloper/Oracle ADF 11g в близко бъдеще и да го използвам за изграждане на LOV, включително списъци с каскадни зависимости от данни.
Нека започнем със създаването на ново приложение в Oracle JDeveloper. Ако нямате други отворени приложения, щракнете върху възела Ново приложение, който се появява в навигатора на приложения. Ако има други отворени приложения, изберете възела Ново приложение от списъка с приложения в горната част на Навигатора на приложения. Така или иначе ще се появи диалоговият прозорец за създаване на приложение. Въведете OraMagDemo в полето Ново приложение и oramag.lovdemo в полето Префикс ново приложение. За полето Шаблон на приложение изберете Уеб приложение [ADF Faces, ADF Page Flow, ADF BC] и след това щракнете върху OK, за да създадете приложението.
Когато дефинирате списък със стойности в Oracle JDeveloper, виепрепраща към показваем обект, който предлага източник на валидни избори за вашия списък. В този пример трябва да създадете два списъка със стойности. Първата стъпка е да дефинирате списък със стойности за атрибута Deptno на създадения по-горе обект за показване на EmpView, като използвате обекта за показване на DeptView като източник за списъка с валидни отдели. След това създавате по-сложен списък от стойности за атрибута Mgr. Този списък ще препраща към новия дисплейен обект, който е резултат от заявка към филтрирания списък на онези служители, които могат да се използват като мениджъри за избрания служител. За това упражнение нека приемем, че списъкът с налични мениджъри за даден служител ще бъде списък с други служители в същия отдел, заедно с всеки служител, който няма мениджър (напр. президент).
Дефиниране на списъци със стойности
Сега, след като обектите на ниво базов модел са създадени, следващата стъпка е да конфигурирате тези два списъка със стойности. В Oracle ADF 11g можете да конфигурирате списък със стойности като декларативна опция за всеки атрибут на обект на показван елемент. Дефинирането на списък със стойности на ниво модел гарантира, че вместо да го дефинира в рамките на потребителския интерфейс (UI), UI ще представи списъка със стойности правилно и последователно, без значение коя клиентска UI технология с активиран Oracle ADF изберете да използвате.
Преди да излезете от диалоговия прозорец Списък със стойности, щракнете върху бутона Редактиране на съвети за потребителския интерфейс на списъка. (в горната част на прозореца), за да отворите диалоговия прозорец List UI Hints. Тези настройки предоставят информация, която определя как трябва да се показва списъкът в потребителския интерфейс.интерфейс. Имайте предвид, че типът списък по подразбиране показва стила на показване на списъка за избор. За този прост пример можете да използвате този тип списък по подразбиране, но ако щракнете върху списъка, можете да видите други типове контроли за списък за използване в конкретни приложения. В секцията Display Attributes изберете атрибута Dname от списъка с налични и щракнете върху бутона Add (стрелка надясно), за да го добавите към списъка с избрани атрибути. Този избор показва, че искате потребителят да вижда името на отдела в списъка, а не номера на отдела. Накрая щракнете върху OK, за да затворите диалоговия прозорец List UI Hints и щракнете отново OK, за да затворите диалоговия прозорец List of Values .
Тъй като този дисплейен обект има обвързващи променливи, трябва да конфигурирате как тези обвързващи стойности получават своите стойности. За да направите това, уверете се, че инструментът за достъп на изглед ManagerListForDepartment1 е избран и щракнете върху бутона Редактиране. В диалоговия прозорец за редактиране на изгледа за достъп имайте предвид, че имената на променливите за свързване CurrentDept и CurrentEmp се появяват в секцията Стойности на параметрите за свързване. Поставете отметка в квадратчето Съществуват стойности за свързване на ниво ред и щракнете двукратно върху колоната Стойност за променливата за свързване CurrentEmp в таблицата. Ако искате да присвоите стойността на тази свързваща променлива към стойността на атрибута Empno на текущия ред, въведете израз на Empno (чувствителен към главни и малки букви) в тази клетка. По същия начин щракнете двукратно върху колоната със стойност за променливата за свързване CurrentDept и въведете израза Deptno, за да присвоите стойността на тази променлива за свързване към стойността на атрибута Deptno за текущия ред. Накрая щракнете върху OK, за да затворите диалоговия прозорец за редактиране на изгледа за достъп и щракнете отново върху OK, за да затворите диалоговия прозорецПреглед на аксесоарите. В диалоговия прозорец Списък със стойности разгънете ManagerListForDepartment1 в дървото на списъка с източници на данни и изберете неговия атрибут Empno. След това, както преди, щракнете върху Edit UI Hints, за да конфигурирате Ename като атрибут за показване на списък. Щракнете върху OK, за да затворите диалоговия прозорец List UI Hints и щракнете отново OK, за да затворите диалоговия прозорец List of Values .
Тестване на вашите списъци със стойности
Можете да използвате подобрения Oracle ADF 11g Oracle Business Component Browser, за да проверите незабавно LOV, който току-що сте конфигурирали. За да стартирате модул на приложение в Oracle Business Component Browser, щракнете с десния бутон върху компонента HRModule в Application Navigator и изберете Run. След като щракнете върху Свързване в диалоговия прозорец, който се появява, ще се появи прозорецът Oracle Business Component Browser. Щракнете двукратно върху екземпляра на обекта за показван елемент EmpView1, за да видите неговите данни. Както е показано на Фигура 1, и двете полета (и Mgr, и Deptno) са под формата на списък. Ако изберете списъка Mgr, трябва да имате предвид, че списъкът включва служители от текущия отдел (с изключение на текущия служител) и служители от тип KING, които нямат мениджър. Докато навигирате до други редове в набора с резултати, можете да видите, че списъците автоматично се променят, за да отразят текущия отдел за текущия служител. Ако промените отдела за служител, като изберете различно име на отдел от списъка, трябва да имате предвид, че когато изберете списъка Mgr, наборът за избор ще се актуализира автоматично, за да отразява новоизбрания отдел.
Ориз. 1: Тестване на обекта на показвания елемент с каскадни списъци със стойности
След като завършите експеримента, изберетеФайл -> Изход, за да излезете от Oracle Business Component Browser. Тъй като Oracle JDeveloper 11g с Oracle ADF Swing въведе нова реализация на Oracle Business Component Browser, този пример също така служи като жива илюстрация на това как приложенията на Oracle ADF Swing могат автоматично да използват дефинирани от модела LOV.
Използването на списъци със стойности в JavaServer Faces Technology
Сега, след като конфигурирахме и тествахме LOVs за обекта за показване EmpView, нека видим колко лесно е да ги използваме в уеб страници с активиран Ajax, използвайки JavaServer Faces (JSF). Докато сте в навигатора на приложения, разгънете проекта ViewController и неговата папка Web Content, за да покажете папката Page Flows на проекта. В тази папка щракнете двукратно върху възела adfc-config, за да отворите блок-схемата на страницата. След това отидете в палитрата Компоненти и намерете секцията Дейности. В този раздел плъзнете компонент View и го пуснете върху блок-схемата на страницата. Когато диаграмата има нов изглед, преименувайте компонента Employees и натиснете ENTER. За да създадете JSF страница за този изглед, щракнете двукратно върху иконата, представляваща новия изглед. Когато се появи диалоговият прозорец JSP Create JSF, щракнете върху OK, за да създадете страницата Employees.jspx, като използвате настройките по подразбиране. Във Visual Page Builder се появява нова уеб страница.
Сега е време да изпълним страницата. Щракнете с десния бутон върху страницата Employees.jspx в Навигатора на приложения и изберете Изпълнение. Помощната програма Oracle JDeveloper ще стартира Oracle Embedded Containers за J2EE Application Server (OC4J) и ще отвори страницата във вашия браузър по подразбиране. Ако приемем, че използвате Internet Explorer 7.0 илиMozilla Firefox 2.0.0.3 (или по-нова), ще видите страница, подобна на Фигура 2. За да тествате приложението, опитайте същите стъпки, които сте следвали по-рано, като използвате Oracle Business Component Browser. Ще видите, че докато преминавате от ред на ред, декларативно конфигурираните списъци се актуализират, за да отразят текущия избор и набора от валидни избори. И когато даден отдел се промени за съществуващ служител, списъкът за избор на Mgr незабавно се актуализира, за да покаже управлявания от данни набор от валидни стойности.
Ориз. 2: Каскаден списък от стойности за JSF страница