Example usage for org.apache.wicket.request.cycle RequestCycle replaceAllRequestHandlers

List of usage examples for org.apache.wicket.request.cycle RequestCycle replaceAllRequestHandlers

Introduction

In this page you can find the example usage for org.apache.wicket.request.cycle RequestCycle replaceAllRequestHandlers.

Prototype

public void replaceAllRequestHandlers(final IRequestHandler handler) 

Source Link

Usage

From source file:com.rex.crm.TemplatePage.java

License:Apache License

/**
 * Constructor/*from  www  .  j  a v  a2s .c  om*/
 */
public TemplatePage() {

    final int roleId = ((SignIn2Session) getSession()).getRoleId();
    add(new Label("title", new PropertyModel<String>(this, "pageTitle")));
    UserInfo user = DAOImpl.getUserInfoById(Integer.parseInt(((SignIn2Session) getSession()).getUserId()));

    //TODO get function work with real id
    List<String> menulist = DAOImpl.getMenuByRole(roleId);

    //populate menu items. TODO componentize it. pass arg: menuList
    ArrayList<MenuItem> menu = Lists.newArrayList();
    for (String key : menulist) {
        menu.add(pageMenuMap.get(key));
    }

    //@SuppressWarnings("unchecked")
    ListView lv = new ListView("menu", menu) {
        @Override
        protected void populateItem(ListItem item) {
            MenuItem menuitem = (MenuItem) item.getModelObject();
            BookmarkablePageLink link = new BookmarkablePageLink("link", menuitem.getDestination());
            link.add(new Label("caption", menuitem.getCaption()).setEscapeModelStrings(false));
            item.add(link);
            item.add(new AttributeAppender("id", Model.of(menuitem.getId())));
            // item.add(new SimpleAttributeModifier("class", "my-css-class"));

        }
    };
    add(lv);

    add(new Link("signout_link") {

        @Override
        public void onClick() {
            SignIn2Session session = (SignIn2Session) getSession();
            LogInOut loginout = new LogInOut();
            loginout.setLoginName(session.getUser());
            loginout.setLogints(System.currentTimeMillis());
            loginout.setSessionId(session.getId());
            CRMUtility.printStat(CRMUtility.STAT_LOG_IN_OUT, loginout, LogInOut.class);
            session.invalidate();
            this.setResponsePage(SignIn.class);
        }

    });

    BookmarkablePageLink user_settings_link = new BookmarkablePageLink("user_settings_link",
            UserDeatialInfo.class);
    add(user_settings_link);
    user_settings_link.add(new Label("loginName", user.getName()));

    WebMarkupContainer admin_menu = new WebMarkupContainer("admin_menu");
    add(admin_menu);
    BookmarkablePageLink adminTreePage = new BookmarkablePageLink("adminTreePage", AdminTreePage.class);
    admin_menu.add(adminTreePage);

    //        BookmarkablePageLink positionTreePage = new BookmarkablePageLink("positionTreePage",PositionTreePage.class );
    //        admin_menu.add(positionTreePage);

    BookmarkablePageLink productTreePage = new BookmarkablePageLink("productTreePage", ProductTreePage.class);
    admin_menu.add(productTreePage);

    BookmarkablePageLink positionPage = new BookmarkablePageLink("positionPage", PositionPage.class);
    admin_menu.add(positionPage);

    //        BookmarkablePageLink reportPage = new BookmarkablePageLink("reportPage",ReportPage.class );
    //        admin_menu.add(reportPage);

    //        BookmarkablePageLink downloadPage = new BookmarkablePageLink("downloadPage",DownloadPage.class );
    //        admin_menu.add(downloadPage);

    BookmarkablePageLink userPage = new BookmarkablePageLink("userPage", UserPage.class);
    admin_menu.add(userPage);

    BookmarkablePageLink userPositionPage = new BookmarkablePageLink("userPositionPage",
            UserPositionPage.class);
    admin_menu.add(userPositionPage);

    //        BookmarkablePageLink productPage = new BookmarkablePageLink("productPage",ProductPage.class );
    //        admin_menu.add(productPage);

    BookmarkablePageLink dataImportPage = new BookmarkablePageLink("dataImportPage", DataImportPage.class);
    admin_menu.add(dataImportPage);
    BookmarkablePageLink alertPage = new BookmarkablePageLink("alertPage", AlertPage.class);
    admin_menu.add(alertPage);

    BookmarkablePageLink areaPage = new BookmarkablePageLink("areaPage", AreaPage.class);
    admin_menu.add(areaPage);
    //        
    //        BookmarkablePageLink applicationPage = new BookmarkablePageLink("applicationPage",AreaPage.class );
    //        admin_menu.add(applicationPage);
    //        
    //        BookmarkablePageLink flowPage = new BookmarkablePageLink("flowPage",AreaPage.class );
    //        admin_menu.add(flowPage);
    //        
    //        BookmarkablePageLink jurisdictionPage = new BookmarkablePageLink("jurisdictionPage",AreaPage.class );
    //        admin_menu.add(jurisdictionPage);
    //        
    //        BookmarkablePageLink contentPage = new BookmarkablePageLink("contentPage",AreaPage.class );
    //        admin_menu.add(contentPage);
    //        
    //        BookmarkablePageLink integrationPage = new BookmarkablePageLink("integrationPage",AreaPage.class );
    //        admin_menu.add(integrationPage);

    BookmarkablePageLink importLogPage = new BookmarkablePageLink("importLog", ImportLogPage.class);
    admin_menu.add(importLogPage);

    //        BookmarkablePageLink merge_data = new BookmarkablePageLink("merge_data",MergePage.class );
    //        admin_menu.add(merge_data);

    admin_menu.setVisible(false);
    if (roleId == 1)
        admin_menu.setVisible(true);

    //end of populate menu items

    AbstractAjaxBehavior ajaxBehaviour = new AbstractAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        public void onRequest() {
            RequestCycle requestCycle = RequestCycle.get();
            readRequestData(requestCycle);
        }

        private void readRequestData(final RequestCycle requestCycle) {
            WebRequest wr = (WebRequest) requestCycle.getRequest();

            HttpServletRequest hsr = (HttpServletRequest) wr.getContainerRequest();
            String response = "{}";
            try {
                BufferedReader br = hsr.getReader();

                String jsonString = br.readLine();
                if ((jsonString == null) || jsonString.isEmpty()) {
                    logger.debug(" no json found");
                } else {
                    logger.debug(" json  is :" + jsonString);
                }
                FunctionClass method = new Gson().fromJson(jsonString, FunctionClass.class);

                FunctionInvoker invoker = new FunctionInvoker(DataProvider.class);
                System.out.println(" method:" + method);
                response = (String) invoker.invoke(method.getF(), method.getP());
                System.out.println("response:" + response);

                br.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            requestCycle
                    .replaceAllRequestHandlers(new TextRequestHandler("application/json", "UTF-8", response));

        }

        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            super.renderHead(component, response);

            final String posId = ((SignIn2Session) getSession()).getPositionId();
            String callbackUrl = getCallbackUrl().toString();

            Map<String, Object> map = new HashMap<>();
            map.put("userInfo", DataProvider.getCRMUserInfoById(new String[] { posId }));
            map.put("ajaxURL", callbackUrl);
            //map.put("allUsers", DataProvider.getAllCRMUsers(new String[0]));
            //map.put("allAccounts", DataProvider.getAllAccounts(new String[0]));
            map.put("context_name", getRootContext());

            PackageTextTemplate ptt = new PackageTextTemplate(getClass(), "template.js");
            //System.out.println(ptt.asString(map));
            response.render(JavaScriptHeaderItem.forScript(ptt.asString(map), null));
            try {
                ptt.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    };
    add(ajaxBehaviour);

}