У меня есть страница jspx в adf, содержащая «Командную ссылку», и при нажатии на Командную ссылку всплывающее окно открывается через определенные свойства «showPopupBehaviour».
Но я хочу что-то проверить при нажатии CommandLink, и если проверка возвращает True, тогда должно открываться только всплывающее окно, иначе появится соответствующее сообщение, если оно вернет False во время проверки. Я изучил это и попытался использовать следующий код для программного вызова всплывающего окна, но не добился в нем успеха, и даже всплывающее окно не открывалось при нажатии CommandLink.
Ниже приведен код, который я пробовал:
/* Below method "showPopup_aug" is invoked through actionListener of CommandLink */
public void showPopup_aug(ActionEvent evt_popup) {
System.out.println("entered in showPopup_aug method");
RichPopup popup_aug = (RichPopup)JSFUtils.findComponentInRoot("pop_aug");
System.out.println("Popup_id="+popup_aug.getId());
/*
//pop_aug.PopupHints hints_aug = new RichPopup.PopupHints();
RichPopup.PopupHints hints_aug = new RichPopup.PopupHints();
popup_aug.show(hints_aug);
System.out.println("Popup-Aug opened");
*/
System.out.println("before calling showPopup method");
showPopup(popup_aug, true);
System.out.println("Popup-Aug opened");
}
Ниже метод «showPopup» вызывается для открытия всплывающего окна на основе параметров, полученных от метода «showPopup_aug»:
public static void showPopup(RichPopup pop, boolean visible) {
try {
System.out.println("entered in showPopup code");
FacesContext context = FacesContext.getCurrentInstance();
if (context != null && pop != null) {
//String popupId = pop.getClientId(context);
String popupId = pop.getId();
System.out.println("ClientID of popup="+popupId);
if (popupId != null) {
System.out.println("Client PopupID is not null");
StringBuilder script = new StringBuilder();
script.append("var popup = AdfPage.PAGE.findComponent('").append(popupId).append("'); ");
if (visible) {
script.append("if (!popup.isPopupVisible()) { ").append("popup.show();}");
} else {
script.append("if (popup.isPopupVisible()) { ").append("popup.hide();}");
}
ExtendedRenderKitService erks = Service.getService(context.getRenderKit(), ExtendedRenderKitService.class);
erks.addScript(context, script.toString());
}
}
System.out.println("completion of showPopup code");
}
catch (Exception e) {
System.out.println("exception occured in showPopup code="+e.getMessage());
throw new RuntimeException(e);
}
}
Я хочу выполнить проверку или действие перед открытием всплывающего окна adf в приложении ADF.