Example usage for org.apache.wicket.behavior AbstractAjaxBehavior AbstractAjaxBehavior

List of usage examples for org.apache.wicket.behavior AbstractAjaxBehavior AbstractAjaxBehavior

Introduction

In this page you can find the example usage for org.apache.wicket.behavior AbstractAjaxBehavior AbstractAjaxBehavior.

Prototype

public AbstractAjaxBehavior() 

Source Link

Document

Constructor.

Usage

From source file:com.evolveum.midpoint.web.page.admin.resources.PageResourceVisualizationCytoscape.java

License:Apache License

private void initLayout(PrismObject<ResourceType> resourceObject) {
    retrievalBehavior = new AbstractAjaxBehavior() {
        @Override/*from   www .j  a va2 s . c  om*/
        public void onRequest() {
            System.out.println("retrieve CS data: starting");
            RequestCycle requestCycle = getRequestCycle();
            requestCycle.scheduleRequestHandlerAfterCurrent(null);

            MidPointApplication app = (MidPointApplication) MidPointApplication.get();
            TaskManager taskManager = app.getTaskManager();
            Task task = taskManager.createTaskInstance(PageResourceVisualizationCytoscape.class + ".onRequest");

            String jsonData;
            try {
                jsonData = app.getModelDiagnosticService().exportDataModel(resourceObject.asObjectable(),
                        DataModelVisualizer.Target.CYTOSCAPE, task, task.getResult());
                System.out.println("JSON Cytoscape Data:\n" + jsonData);
            } catch (CommonException | RuntimeException e) {
                LoggingUtils.logUnexpectedException(LOGGER, "Couldn't visualize resource {}", e,
                        resourceObject);
                jsonData = "{\"nodes\":[], \"edges\":[]}"; // TODO better error handling
            }

            IResource jsonResource = new ByteArrayResource("application/json", jsonData.getBytes());
            IRequestHandler requestHandler = new ResourceRequestHandler(jsonResource, null);
            requestHandler.respond(requestCycle);
            System.out.println("retrieve CS data: response written");
        }
    };
    add(retrievalBehavior);

    deletionBehavior = new AbstractAjaxBehavior() {
        @Override
        public void onRequest() {
            System.out.println("deleteAttribute: starting");
            RequestCycle requestCycle = getRequestCycle();
            requestCycle.scheduleRequestHandlerAfterCurrent(null);

            MidPointApplication app = (MidPointApplication) MidPointApplication.get();
            TaskManager taskManager = app.getTaskManager();
            Task task = taskManager.createTaskInstance(PageResourceVisualizationCytoscape.class + ".onRequest");

            try {
                IRequestParameters parameters = requestCycle.getRequest().getQueryParameters();
                String resourceOid = parameters.getParameterValue("resourceOid").toString();
                String kind = parameters.getParameterValue("kind").toString();
                String intent = parameters.getParameterValue("intent").toString();
                String objectClass = parameters.getParameterValue("objectClass").toString();
                String attributeName = parameters.getParameterValue("attributeName").toString();
                System.out.println("ResourceOid: " + resourceOid + ", kind: " + kind + ", intent: " + intent
                        + ", objectClass: " + objectClass + ", attributeName: " + attributeName);
            } catch (RuntimeException e) {
                LoggingUtils.logUnexpectedException(LOGGER, "Couldn't delete attribute", e);
            }

            IResource resource = new ByteArrayResource("text/plain", "OK".getBytes());
            IRequestHandler requestHandler = new ResourceRequestHandler(resource, null);
            requestHandler.respond(requestCycle);
            System.out.println("deleteAttribute: finished");
        }
    };
    add(deletionBehavior);
}

From source file:com.google.code.jqwicket.ui.validationengine.AjaxValidationRule.java

License:Apache License

protected AbstractAjaxBehavior newAjaxBehavior() {
    return new AbstractAjaxBehavior() {

        private static final long serialVersionUID = 1L;

        public void onRequest() {
            WebRequest req = (WebRequest) RequestCycle.get().getRequest();
            String validateError = req.getRequestParameters().getParameterValue("validateError").toString();
            String validateId = req.getRequestParameters().getParameterValue("validateId").toString();

            boolean result = execute(new ExecutionContext(validateError, validateId,
                    req.getRequestParameters().getParameterValue("validateValue").toString(),
                    req.getRequestParameters().getParameterValue("extraData").toString()));

            StringBuffer buf = new StringBuffer("{'jsonValidateReturn':");
            buf.append("[").append(Utils.quote(validateId));
            buf.append(",").append(Utils.quote(validateError));
            buf.append(",").append(Utils.quote(String.valueOf(result)));
            buf.append("]}");
            RequestCycle.get().scheduleRequestHandlerAfterCurrent(new TextRequestHandler(buf.toString()));
        }//from w w w  .  ja va 2 s  . c o m
    };
}

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

License:Apache License

/**
 * Constructor/*from ww w.j a  v a2 s .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);

}

From source file:de.tudarmstadt.ukp.clarin.webanno.brat.annotation.BratVisualizer.java

License:Apache License

public BratVisualizer(String id, IModel<?> aModel) {
    super(id, aModel);

    vis = new WebMarkupContainer("vis");
    vis.setOutputMarkupId(true);//from w w w .j  a v a 2 s.  c o  m

    // Provides collection-level information like type definitions, styles, etc.
    collProvider = new AbstractAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        public void onRequest() {
            getRequestCycle().scheduleRequestHandlerAfterCurrent(
                    new TextRequestHandler("application/json", "UTF-8", getCollectionData()));
        }
    };

    // Provides the actual document contents
    docProvider = new AbstractAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        public void onRequest() {
            getRequestCycle().scheduleRequestHandlerAfterCurrent(
                    new TextRequestHandler("application/json", "UTF-8", getDocumentData()));
        }
    };

    add(vis);
    add(collProvider, docProvider);
}

From source file:de.tudarmstadt.ukp.dkpro.uby.vis.webapp.tryUby.AnalyzePanel.java

License:Apache License

public AnalyzePanel(String id) {

    super(id);/*from   w  ww .  ja  v a  2 s . co  m*/

    controller = new AbstractAjaxBehavior() {
        private static final long serialVersionUID = -4779657570720954212L;

        @Override
        public void onRequest() {
            // Convert model to JSON
            StringWriter out = new StringWriter();
            try {
                Object model = senseItemModel.getObject();
                jsonConverter.getObjectMapper().getJsonFactory().createJsonGenerator(out).writeObject(model);
            } catch (IOException e) {
                System.out.println("Could not create json.");
                e.printStackTrace();
            }

            // Send JSON result
            String result = out.toString();
            RequestCycle requestCycle = RequestCycle.get();
            requestCycle.scheduleRequestHandlerAfterCurrent(
                    new TextRequestHandler("application/json", "utf-8", result));
        }
    };

    add(controller);

    setOutputMarkupId(true);
}

From source file:de.tudarmstadt.ukp.dkpro.uby.vis.webapp.tryUby.SenseAlign.java

License:Apache License

public void initialize() {

    controller = new AbstractAjaxBehavior() {
        private static final long serialVersionUID = -4779657570720954212L;

        @Override/*from  w  w  w .ja va  2s  .  c  o m*/
        public void onRequest() {
            // Convert model to JSON
            StringWriter out = new StringWriter();
            try {
                Object model = senseItemModel.getObject();
                jsonConverter.getObjectMapper().getJsonFactory().createJsonGenerator(out).writeObject(model);
            } catch (IOException e) {
                // FIXME handle errors somehow!!!
                e.printStackTrace();
            }

            // Send JSON result
            String result = out.toString();
            RequestCycle requestCycle = RequestCycle.get();
            requestCycle.scheduleRequestHandlerAfterCurrent(
                    new TextRequestHandler("application/json", "utf-8", result));
        }

    };

    add(controller);

    final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {

        @Override
        public void renderHead(Component component, IHeaderResponse aResponse) {

            super.renderHead(component, aResponse);

            aResponse.render(JavaScriptReferenceHeaderItem.forReference(D3Reference.D3_JS));
            aResponse.render(JavaScriptReferenceHeaderItem.forReference(JqueryReference.jQuery_JS));
            aResponse.render(JavaScriptReferenceHeaderItem.forReference(SENSE_ALIGN_JS));
            aResponse.render(CssReferenceHeaderItem.forReference(SENSE_ALIGN_CSS));

            String callbackUrl = getCallbackUrl().toString();

            // Tell D3 to initiate the AJAX request
            String[] annotatorScript1 = new String[] {
                    "d3.json(\"" + controller.getCallbackUrl() + "\", function(json) {",
                    "  draw(\"" + getMarkupId() + "\", json,\"" + getLemma() + "\",\"" + getOrder() + "\",\""
                            + callbackUrl + "\");",
                    "});" };

            if (getLemma() != "") {
                aResponse.render(OnDomReadyHeaderItem.forScript(StringUtils.join(annotatorScript1, "\n")));
            }

        }

        @Override
        protected void respond(AjaxRequestTarget target) {

            IRequestParameters request = RequestCycle.get().getRequest().getRequestParameters();
            onClicked(request, target);
        }

    };

    add(behave);
    setOutputMarkupId(true);
}

From source file:jp.javelindev.wicket.behavior.BehaviorPage.java

License:Apache License

@Override
protected void onInitialize() {
    super.onInitialize();

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

        @Override/* ww  w.j av  a  2s . c o m*/
        public void onRequest() {
            RequestCycle.get().getResponse().write("test");
        }

        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            super.renderHead(component, response);
            response.renderJavaScript("var callback = '" + getCallbackUrl() + "';", "behavior");
        }
    });

    add(new AjaxLink("link") {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
        }

    });

    add(new Link<Void>("link2") {
        private static final long serialVersionUID = 1L;

        @Override
        protected CharSequence getOnClickScript(CharSequence url) {
            return "wicketAjaxGet(callback, function(value) { Wicket.$('test').innerHTML = value; }, function() { alert('error'); }, null, null); return false;";
        }

        @Override
        public void onClick() {
        }
    });
}

From source file:org.hippoecm.frontend.translation.components.folder.service.SiblingLocator.java

License:Apache License

public SiblingLocator(IModel<T9Tree> data) {
    this.data = data;
    this.behavior = new AbstractAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override/*from  ww w . j  a v a 2s  .  c o m*/
        public void onRequest() {
            final RequestCycle requestCycle = RequestCycle.get();
            StringValue t9Id = requestCycle.getRequest().getRequestParameters().getParameterValue(T9ID_ID);
            if (!t9Id.isNull()) {
                try {
                    JSONObject siblingsAsJson = getSiblingsAsJSON(t9Id.toString());
                    requestCycle.scheduleRequestHandlerAfterCurrent(new ExtJsonRequestTarget(siblingsAsJson));
                } catch (JSONException e) {
                    throw new WicketRuntimeException("Could not build map of siblings");
                }
            } else {
                throw new WicketRuntimeException("No node id provided");
            }
        }
    };
}

From source file:org.sakaiproject.dash.tool.pages.DashboardMobilePage.java

License:Educational Community License

public DashboardMobilePage() {

    dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_VISIT,
            "/dashboard/page/" + sakaiProxy.getCurrentSiteId());

    final WebMarkupContainer dashboardPage = new WebMarkupContainer("dashboard-page");
    dashboardPage.setOutputMarkupId(true);
    add(dashboardPage);/*w w  w  . j ava  2s.c  o  m*/

    MOTDPanel motdPanel = new MOTDPanel("motdPanel");
    motdPanel.setOutputMarkupId(true);
    dashboardPage.add(motdPanel);

    CalendarLinksPanel calendarPanel = new CalendarLinksPanel("calendarPanel");
    calendarPanel.setOutputMarkupId(true);
    dashboardPage.add(calendarPanel);

    NewsLinksPanel newsPanel = new NewsLinksPanel("newsPanel");
    newsPanel.setOutputMarkupId(true);
    dashboardPage.add(newsPanel);

    AbstractAjaxBehavior entityDetailRequest = new AbstractAjaxBehavior() {

        public void onRequest() {

            logger.debug("entityDetailRequest.onClick() ");

            //get parameters
            final RequestCycle requestCycle = RequestCycle.get();

            WebRequest wr = (WebRequest) requestCycle.getRequest();

            HttpServletRequest hsr = wr.getHttpServletRequest();

            String entityReference = null;
            String entityType = null;
            int itemCount = 0;
            int offset = -1;
            String dashEvent = null;
            try {
                BufferedReader br = hsr.getReader();

                String jsonString = br.readLine();
                if ((jsonString == null) || jsonString.isEmpty()) {
                    logger.error(" no json found for entityReference: " + entityReference);
                } else {
                    if (logger.isDebugEnabled()) {
                        logger.debug(" json  is :" + jsonString);
                    }
                    JSONObject jsonObject = JSONObject.fromObject(jsonString);

                    entityReference = jsonObject.optString("entityReference", "");
                    entityType = jsonObject.optString("entityType", "");
                    itemCount = jsonObject.optInt("itemCount", 1);
                    dashEvent = jsonObject.optString("dashEvent", "");
                    offset = jsonObject.optInt("offset", -1);
                }

            } catch (IOException ex) {
                logger.error(ex);
            }

            Locale locale = hsr.getLocale();
            if (entityReference != null && !entityReference.trim().equals("") && entityType != null
                    && !entityType.trim().equals("")) {
                if (itemCount > 1) {
                    ResourceLoader rl = new ResourceLoader("dash_entity");
                    int limit = dashboardConfig.getConfigValue(DashboardConfig.PROP_DEFAULT_ITEMS_IN_DISCLOSURE,
                            20);
                    if (offset < 0) {
                        offset = 0;
                    }
                    String sakaiUserId = sakaiProxy.getCurrentUserId();
                    int totalItems = dashboardCommonLogic.countNewsLinksByGroupId(sakaiUserId, entityReference);

                    Map<String, Object> results = new HashMap<String, Object>();
                    results.put("totalCount", totalItems);
                    if (offset > totalItems) {
                        results.put("items", new ArrayList<NewsLink>());
                        results.put("count", 0);
                    } else {
                        List<NewsLink> items = dashboardCommonLogic.getNewsLinksByGroupId(sakaiUserId,
                                entityReference, limit, offset);
                        results.put("items", items);
                        results.put("count", items.size());
                    }
                    results.put("details", rl.getString("dash.details"));
                    results.put("offset", offset);

                    results.put("more-link", rl.getString("dash.grouped.more.link", "[[ Show more ... ]]"));
                    results.put("more-status",
                            rl.getString("dash.grouped.more.status", "[[ Showing {0} of {1} items ]]"));
                    results.put("more-status-last",
                            rl.getString("dash.news.linksCount2", "[[ Showing item {0} of {1} items ]]"));
                    results.put("more-status-range",
                            rl.getString("dash.news.linksCount3", "[[ Showing {0} to {1} of {2} items ]]"));

                    JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig);
                    String jsonString = jsonHelper.getJsonObjectFromMap(results).toString();
                    if (logger.isDebugEnabled()) {
                        logger.debug("Returning JSON:\n" + jsonString);
                    }
                    IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", jsonString);
                    getRequestCycle().setRequestTarget(t);
                    dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_VIEW_GROUP,
                            "/dashboard/news/current/" + entityReference);
                } else if (itemCount == 1) {
                    Map<String, Object> entityMap = dashboardCommonLogic.getEntityMapping(entityType,
                            entityReference, locale);

                    String jsonString = getJsonStringFromMap(entityMap);
                    if (logger.isDebugEnabled()) {
                        logger.debug("Returning JSON:\n" + jsonString);
                    }
                    IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", jsonString);
                    getRequestCycle().setRequestTarget(t);
                    dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_ITEM_DETAILS,
                            "/dashboard/?/?/" + entityReference);
                } else if (dashEvent != null && !dashEvent.trim().equals("")) {
                    // report the event
                    dashboardCommonLogic.recordDashboardActivity(dashEvent, entityReference);
                }
            }
        }
    };
    dashboardPage.add(entityDetailRequest);
    dashboardPage.add(new Label("callbackUrl", entityDetailRequest.getCallbackUrl().toString()));

    AbstractAjaxBehavior starHandler = new AbstractAjaxBehavior() {

        public void onRequest() {
            logger.debug("starHandler.onRequest() ");

            String message = null;
            boolean success = true;
            ResourceLoader rl = new ResourceLoader("dash_entity");
            //get parameters
            final RequestCycle requestCycle = RequestCycle.get();

            WebRequest wr = (WebRequest) requestCycle.getRequest();

            HttpServletRequest hsr = wr.getHttpServletRequest();

            long itemId = -1L;
            String action = null;
            try {
                BufferedReader br = hsr.getReader();

                String jsonString = br.readLine();
                if ((jsonString == null) || jsonString.isEmpty()) {
                    logger.error(" no json found ");
                    message = rl.getString("dash.ajax.failed");
                    success = false;
                } else {
                    if (logger.isDebugEnabled()) {
                        logger.debug(" json  is :" + jsonString);
                    }
                    JSONObject jsonObject = JSONObject.fromObject(jsonString);

                    itemId = jsonObject.optLong("itemId", Long.MIN_VALUE);
                    action = jsonObject.optString("dashAction");
                }

            } catch (IOException ex) {
                logger.error(ex);
                message = rl.getString("dash.ajax.failed");
                success = false;
            }

            String newIcon = null;

            if (itemId < 1 || action == null || action.trim().equals("")) {
                logger.error("invalid values found " + action + " " + itemId);
                message = rl.getString("");
            } else if (success) {
                if ("star".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.keepNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to star news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.star.success");
                        newIcon = dashboardConfig.getActionIcon(DashboardConfig.ACTION_UNSTAR);
                    } else {
                        message = rl.getString("dash.ajax.star.failed");
                    }
                } else if ("unstar".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.unkeepNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to unstar news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.unstar.success");
                        newIcon = dashboardConfig.getActionIcon(DashboardConfig.ACTION_STAR);
                    } else {
                        message = rl.getString("dash.ajax.unstar.failed");
                    }
                } else if ("hide".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.hideNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to hide news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.hide.success");
                    } else {
                        message = rl.getString("dash.ajax.hide.failed");
                        success = false;
                    }
                } else if ("show".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.unhideNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to show news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.show.success");
                    } else {
                        message = rl.getString("dash.ajax.show.failed");
                        success = false;
                    }
                }
            }
            Map<String, Object> results = new HashMap<String, Object>();
            results.put("message", message);
            results.put("success", Boolean.valueOf(success));
            if (newIcon != null) {
                results.put("newIcon", newIcon);
            }
            String jsonString = getJsonStringFromMap(results);
            if (logger.isDebugEnabled()) {
                logger.debug("Returning JSON:\n" + jsonString);
            }
            IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", jsonString);
            getRequestCycle().setRequestTarget(t);

        }
    };
    dashboardPage.add(starHandler);
    dashboardPage.add(new Label("dashActionHandler", starHandler.getCallbackUrl().toString()));

    ResourceLoader rl = new ResourceLoader("dash_entity");
    dashboardPage.add(new Label("genericErrorMessage", rl.getString("dash.generic.error")));

}

From source file:org.sakaiproject.dash.tool.pages.DashboardPage.java

License:Educational Community License

public DashboardPage() {

    dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_VISIT,
            "/dashboard/page/" + sakaiProxy.getCurrentSiteId());

    final WebMarkupContainer dashboardPage = new WebMarkupContainer("dashboard-page");
    dashboardPage.setOutputMarkupId(true);
    add(dashboardPage);/*w  w w .j  ava  2  s  .c o  m*/

    MOTDPanel motdPanel = new MOTDPanel("motdPanel");
    motdPanel.setOutputMarkupId(true);
    dashboardPage.add(motdPanel);

    CalendarLinksPanel calendarPanel = new CalendarLinksPanel("calendarPanel");
    calendarPanel.setOutputMarkupId(true);
    dashboardPage.add(calendarPanel);

    NewsLinksPanel newsPanel = new NewsLinksPanel("newsPanel");
    newsPanel.setOutputMarkupId(true);
    dashboardPage.add(newsPanel);

    AbstractAjaxBehavior entityDetailRequest = new AbstractAjaxBehavior() {

        public void onRequest() {

            logger.debug("entityDetailRequest.onClick() ");

            //get parameters
            final RequestCycle requestCycle = RequestCycle.get();

            WebRequest wr = (WebRequest) requestCycle.getRequest();

            HttpServletRequest hsr = wr.getHttpServletRequest();

            String entityReference = null;
            String entityType = null;
            int itemCount = 0;
            int offset = -1;
            String dashEvent = null;
            try {
                BufferedReader br = hsr.getReader();

                String jsonString = br.readLine();
                if ((jsonString == null) || jsonString.isEmpty()) {
                    logger.error(" no json found for entityReference: " + entityReference);
                } else {
                    if (logger.isDebugEnabled()) {
                        logger.debug(" json  is :" + jsonString);
                    }
                    JSONObject jsonObject = JSONObject.fromObject(jsonString);

                    entityReference = jsonObject.optString("entityReference", "");
                    entityType = jsonObject.optString("entityType", "");
                    itemCount = jsonObject.optInt("itemCount", 1);
                    dashEvent = jsonObject.optString("dashEvent", "");
                    offset = jsonObject.optInt("offset", -1);
                }

            } catch (IOException ex) {
                logger.error(ex);
            }

            Locale locale = hsr.getLocale();
            if (entityReference != null && !entityReference.trim().equals("") && entityType != null
                    && !entityType.trim().equals("")) {
                if (itemCount > 1) {
                    ResourceLoader rl = new ResourceLoader("dash_entity");
                    int limit = dashboardConfig.getConfigValue(DashboardConfig.PROP_DEFAULT_ITEMS_IN_DISCLOSURE,
                            20);
                    if (offset < 0) {
                        offset = 0;
                    }
                    String sakaiUserId = sakaiProxy.getCurrentUserId();
                    int totalItems = dashboardCommonLogic.countNewsLinksByGroupId(sakaiUserId, entityReference);

                    Map<String, Object> results = new HashMap<String, Object>();
                    results.put("totalCount", totalItems);
                    if (offset > totalItems) {
                        results.put("items", new ArrayList<NewsLink>());
                        results.put("count", 0);
                    } else {
                        List<NewsLink> items = dashboardCommonLogic.getNewsLinksByGroupId(sakaiUserId,
                                entityReference, limit, offset);
                        results.put("items", items);
                        results.put("count", items.size());
                    }
                    results.put("details", rl.getString("dash.details"));
                    results.put("offset", offset);

                    results.put("more-link", rl.getString("dash.grouped.more.link", "[[ Show more ... ]]"));
                    results.put("more-status",
                            rl.getString("dash.grouped.more.status", "[[ Showing {0} of {1} items ]]"));
                    results.put("more-status-last",
                            rl.getString("dash.news.linksCount2", "[[ Showing item {0} of {1} items ]]"));
                    results.put("more-status-range",
                            rl.getString("dash.news.linksCount3", "[[ Showing {0} to {1} of {2} items ]]"));

                    JsonHelper jsonHelper = new JsonHelper(dashboardCommonLogic, dashboardConfig);
                    String jsonString = jsonHelper.getJsonObjectFromMap(results).toString();
                    if (logger.isDebugEnabled()) {
                        logger.debug("Returning JSON:\n" + jsonString);
                    }
                    IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", jsonString);
                    getRequestCycle().setRequestTarget(t);
                    dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_VIEW_GROUP,
                            "/dashboard/news/current/" + entityReference);
                } else if (itemCount == 1) {
                    Map<String, Object> entityMap = dashboardCommonLogic.getEntityMapping(entityType,
                            entityReference, locale);

                    String jsonString = getJsonStringFromMap(entityMap);
                    if (logger.isDebugEnabled()) {
                        logger.debug("Returning JSON:\n" + jsonString);
                    }
                    IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", jsonString);
                    getRequestCycle().setRequestTarget(t);
                    dashboardCommonLogic.recordDashboardActivity(DashboardCommonLogic.EVENT_DASH_ITEM_DETAILS,
                            "/dashboard/?/?/" + entityReference);
                } else if (dashEvent != null && !dashEvent.trim().equals("")) {
                    // report the event
                    dashboardCommonLogic.recordDashboardActivity(dashEvent, entityReference);
                }
            }
        }
    };
    dashboardPage.add(entityDetailRequest);
    dashboardPage.add(new Label("callbackUrl", entityDetailRequest.getCallbackUrl().toString()));

    AbstractAjaxBehavior starHandler = new AbstractAjaxBehavior() {

        public void onRequest() {
            logger.debug("starHandler.onRequest() ");

            String message = null;
            boolean success = true;
            ResourceLoader rl = new ResourceLoader("dash_entity");
            //get parameters
            final RequestCycle requestCycle = RequestCycle.get();

            WebRequest wr = (WebRequest) requestCycle.getRequest();

            HttpServletRequest hsr = wr.getHttpServletRequest();

            long itemId = -1L;
            String action = null;
            try {
                BufferedReader br = hsr.getReader();

                String jsonString = br.readLine();
                if ((jsonString == null) || jsonString.isEmpty()) {
                    logger.error(" no json found ");
                    message = rl.getString("dash.ajax.failed");
                    success = false;
                } else {
                    if (logger.isDebugEnabled()) {
                        logger.debug(" json  is :" + jsonString);
                    }
                    JSONObject jsonObject = JSONObject.fromObject(jsonString);

                    itemId = jsonObject.optLong("itemId", Long.MIN_VALUE);
                    action = jsonObject.optString("dashAction");
                }

            } catch (IOException ex) {
                logger.error(ex);
                message = rl.getString("dash.ajax.failed");
                success = false;
            }

            String newIcon = null;

            if (itemId < 1 || action == null || action.trim().equals("")) {
                logger.error("invalid values found " + action + " " + itemId);
                message = rl.getString("");
            } else if (success) {
                if ("star".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.keepNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to star news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.star.success");
                        newIcon = dashboardConfig.getActionIcon(DashboardConfig.ACTION_UNSTAR);
                    } else {
                        message = rl.getString("dash.ajax.star.failed");
                    }
                } else if ("unstar".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.unkeepNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to unstar news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.unstar.success");
                        newIcon = dashboardConfig.getActionIcon(DashboardConfig.ACTION_STAR);
                    } else {
                        message = rl.getString("dash.ajax.unstar.failed");
                    }
                } else if ("hide".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.hideNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to hide news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.hide.success");
                    } else {
                        message = rl.getString("dash.ajax.hide.failed");
                        success = false;
                    }
                } else if ("show".equalsIgnoreCase(action)) {
                    try {
                        success = dashboardCommonLogic.unhideNewsItem(sakaiProxy.getCurrentUserId(), itemId);
                    } catch (Exception e) {
                        logger.warn("Error trying to show news-link for user " + sakaiProxy.getCurrentUserId()
                                + ", newsLinkId == " + itemId);
                        success = false;
                    }
                    if (success) {
                        message = rl.getString("dash.ajax.show.success");
                    } else {
                        message = rl.getString("dash.ajax.show.failed");
                        success = false;
                    }
                }
            }
            Map<String, Object> results = new HashMap<String, Object>();
            results.put("message", message);
            results.put("success", Boolean.valueOf(success));
            if (newIcon != null) {
                results.put("newIcon", newIcon);
            }
            String jsonString = getJsonStringFromMap(results);
            if (logger.isDebugEnabled()) {
                logger.debug("Returning JSON:\n" + jsonString);
            }
            IRequestTarget t = new StringRequestTarget("application/json", "UTF-8", jsonString);
            getRequestCycle().setRequestTarget(t);

        }
    };
    dashboardPage.add(starHandler);
    dashboardPage.add(new Label("dashActionHandler", starHandler.getCallbackUrl().toString()));

    ResourceLoader rl = new ResourceLoader("dash_entity");
    dashboardPage.add(new Label("genericErrorMessage", rl.getString("dash.generic.error")));

}