Последовательность действий для реализации train
1. Создаем регион TrainRN, создаем ссылки на страницы - дочерние элементы (Item Style: link). Свойства бинов Destination URI и Text обязательны для заполнения:
2. Создаем регион FooterRN, в котором будут располагаться управляющие элементы для Train. В контроллере региона будет реализована передача параметров между страницами и логика переходов.
В свойствах First Step и Last Step нужно указать номера соответственно первой и последней страниц (в нашем примере их 2. First Step=1, Last Step=2). Кнопка Apply будет доступна только при сохранении резальтата, т.е. на странице 2 - это мы позже реализуем в контроллере FooterCO.
3. Создаем собственно сами страницы DeviationSearchPG и DeviationInputPG. Необходимо встроить регионы, созданные на предыдущих шагах в страницу:
Результат:
4. Реализуем контроллер FooterCO
1. Создаем регион TrainRN, создаем ссылки на страницы - дочерние элементы (Item Style: link). Свойства бинов Destination URI и Text обязательны для заполнения:
2. Создаем регион FooterRN, в котором будут располагаться управляющие элементы для Train. В контроллере региона будет реализована передача параметров между страницами и логика переходов.
В свойствах First Step и Last Step нужно указать номера соответственно первой и последней страниц (в нашем примере их 2. First Step=1, Last Step=2). Кнопка Apply будет доступна только при сохранении резальтата, т.е. на странице 2 - это мы позже реализуем в контроллере FooterCO.
3. Создаем собственно сами страницы DeviationSearchPG и DeviationInputPG. Необходимо встроить регионы, созданные на предыдущих шагах в страницу:
Результат:
4. Реализуем контроллер FooterCO
public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
super.processRequest(pageContext, webBean);
int step = 1;
if (pageContext.getParameter("StepNumber") != null)
step = Integer.parseInt(pageContext.getParameter("StepNumber"));
OANavigationBarBean navigationBean =
(OANavigationBarBean)webBean.findChildRecursive("NavigationBar");
// устранавливаем шаг
navigationBean.setValue(step);
OASubmitButtonBean applyButton =
(OASubmitButtonBean)webBean.findIndexedChildRecursive("Apply");
// скрываем кнопку "Применить" на всех страницах, кроме последней
if (step != 2){
applyButton.setRendered(false);
}
}
Для реализации логики переходов и передачи параметров удобно воспользоваться следующим алгоритмом в процедуре processFormRequestpublic void processFormRequest(OAPageContext pageContext, OAWebBean webBean){
super.processFormRequest(pageContext, webBean);
String targetPage = "";
OAApplicationModule am = pageContext.getApplicationModule(webBean);
if (GOTO_EVENT.equals(pageContext.getParameter(EVENT_PARAM)) &&
"NavigationBar".equals(pageContext.getParameter(SOURCE_PARAM)) &&
pageContext.getParameter("Apply") == null) {
int target;
target = Integer.parseInt(pageContext.getParameter(VALUE_PARAM));
HashMap pageParams = new HashMap();
try {
switch (target) {
case 1:
targetPage =
"/oracle/apps/xxtest/webui/DeviationSearchPG";
pageParams.put("StepNumber", target);
break;
case 2:
targetPage =
"/oracle/apps/xxrtest/webui/DeviationInputPG";
pageParams.put("StepNumber", target);
break;
default:
throw new OAException("Unexpected step number:" + target);
} // Retain AM
pageContext.setForwardURL("OA.jsp?page=" + targetPage,
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null, pageParams, true,
OAWebBeanConstants.ADD_BREAD_CRUMB_NO,
OAWebBeanConstants.IGNORE_MESSAGES);
} catch (Exception e) {
throw OAException.wrapperException(e);
}
}
}
Комментариев нет :
Отправить комментарий