Последовательность действий для реализации 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); } }Для реализации логики переходов и передачи параметров удобно воспользоваться следующим алгоритмом в процедуре processFormRequest
public 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); } } }
Комментариев нет :
Отправить комментарий