Este tutorial fue realizado en
jDeveloper 11.1.1.7.0 y su objetivo es insertar un registro a una tabla de la base de datos ingresando los datos del nuevo registro en un popUp.
Para este tutorial tenemos la siguiente tabla de Observaciones y botón "Agregar Observación" en el fragmento "Fragmento.jsff".
Tenemos un popUp que contiene un Dialog y necesitamos agregar un nuevo registro en la tabla de la base de datos. Es necesario arrastar desde los Data Controls el View Object referente a la tabla de la base de datos que estamos trabajando, en este caso es "ObservacionesView1".
Vamos a popUp -> Propety Inspector -> Common -> PopUpFetchListener creamos la función "editPopUpListener", y en popUp -> Propety Inspector -> Common-> PopUpCanceledListener creamos la función "editPopUpCancelListener", en el Manage Bean del fragmento: "FragmentoBean.java".
Además cambiamos la propiedad de Common-> ContentDelivery a lazyUncached.
Luego nos dirigimos hacia la pestaña Bindings de la página y añadimos 3 bindings de tipo "action": "CreateInsert" , "Commit" y "Rollback". Como vemos todas estas acciones hacen referencia al Iterador: "ObservacionView1Iterator" del View Object "ObservacionView1" que estamos trabajando.
Para ejecutar un "action" desde el ManageBean de la página o fragmento podemos utilizar la siguiente función:
public Object executeAction(String actionName) {
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
OperationBinding operation = bindings.getOperationBinding(actionName);
return operation.execute(); }
OperationBinding operation = bindings.getOperationBinding(actionName);
return operation.execute(); }
Luego implementamos los métodos "editPopUpListener" y "editPopUpCancelListener":
public void editPopUpFetchListener(PopupFetchEvent popupFetchEvent) {
executeAction("CreateInsert"); }
public void editPopUpCalcelListener(PopupCanceledEvent popupCanceledEvent) {
executeAction("Rollback"); }
executeAction("CreateInsert"); }
public void editPopUpCalcelListener(PopupCanceledEvent popupCanceledEvent) {
executeAction("Rollback"); }
Ahora vamos nos dirigimos hacia las propiedades del Dialog que se encuentra dentro del popUp y añadimos un método en Dialog-> Property Inspector -> Behavior -> DialogListener
En la función OKDialog que acabamos de crear, implementamos lo siguiente:
public void OKDialog(DialogEvent dialogEvent) {
Outcome outcome = dialogEvent.getOutcome();
Outcome outcome = dialogEvent.getOutcome();
if (outcome == Outcome.ok){
executeAction("Commit");}
else if (outcome == Outcome.no){
executeAction("Rollback");}}