Example usage for com.google.gwt.core.client JsonUtils safeEval

List of usage examples for com.google.gwt.core.client JsonUtils safeEval

Introduction

In this page you can find the example usage for com.google.gwt.core.client JsonUtils safeEval.

Prototype

public static native <T extends JavaScriptObject> T safeEval(String json) ;

Source Link

Document

Evaluates a JSON expression safely.

Usage

From source file:cc.kune.embed.client.panels.EmbedPresenter.java

License:GNU Affero Public License

private void getContentFromHistoryHash(final String stateTokenS) {
    Log.info("Opening statetoken: " + stateTokenS);
    final boolean isGroupToken = TokenMatcher.isGroupToken(stateTokenS);
    final boolean isWaveToken = TokenMatcher.isWaveToken(stateTokenS);
    final String suffix = isGroupToken ? "" : isWaveToken ? "ByWaveRef" : "";

    if (isGroupToken || isWaveToken) {
        // Ok is a token like group.tool.number
        final String getContentUrl = EmbedHelper.getServerWithPath() + "cors/ContentCORSService/getContent"
                + suffix + "?" + new UrlParam(JSONConstants.TOKEN_PARAM, URL.encodeQueryString(stateTokenS));

        // FIXME Exception if is not public?

        EmbedHelper.processRequest(getContentUrl, new Callback<Response, Void>() {

            @Override/*from   w  ww .  j a  v  a 2 s.c  o  m*/
            public void onFailure(final Void reason) {
                notFound();
            }

            @Override
            public void onSuccess(final Response response) {
                // final StateToken currentToken = new StateToken(currentHash);
                NotifyUser.hideProgress();
                final StateAbstractDTOJs state = JsonUtils.safeEval(response.getText());
                final StateTokenJs stateTokenJs = (StateTokenJs) state.getStateToken();

                // getContent returns the default content if doesn't finds the content
                if ((isGroupToken && stateTokenS.equals(stateTokenJs.getEncoded()))
                        || (isWaveToken && stateTokenS.equals(state.getWaveRef()))) {
                    onGetContentSuccessful(session, EmbedHelper.parse(state));
                } else {
                    // getContent returns def content if content not found
                    notFound();
                }
            }
        });

    } else {
        // Do something
        notFound();
    }
}

From source file:cc.kune.embed.client.panels.EmbedPresenter.java

License:GNU Affero Public License

private void onAppStarted() {
    // We set the prefix for avatars url with the server url
    final String serverUrl = EmbedConfiguration.get().getServerUrl();
    clientDownUtils.setPrefix(serverUrl);
    final String serverNoSlash = serverUrl.replaceAll("/$", "");
    KuneWaveProfileManager.urlPrefix = serverNoSlash;
    AtmosphereConnectionImpl.urlPrefix = serverNoSlash;

    final String userHash = session.getUserHash();
    Log.info("Started embed presenter with user hash: " + userHash);

    final String initUrl = EmbedHelper.getServerWithPath() + "cors/SiteCORSService/getInitData";

    EmbedHelper.processRequest(initUrl, new Callback<Response, Void>() {
        @Override/*from  w  w  w.ja  va  2 s . c o  m*/
        public void onFailure(final Void reason) {
            // Do nothing
            Log.info("Failed to get init data");
        }

        @Override
        public void onSuccess(final Response response) {
            final InitDataDTOJs initData = JsonUtils.safeEval(response.getText());
            session.setInitData(EmbedHelper.parse(initData));
            final UserInfoDTOJs userInfo = (UserInfoDTOJs) initData.getUserInfo();
            if (userInfo != null) {
                session.setUserHash(userInfo.getUserHash());
                session.setCurrentUserInfo(EmbedHelper.parse(userInfo), null);
            } else {
                if (session.getUserHash() != null) {
                    // Probably the session expired
                    session.signOut();
                }
            }
            final String currentHash = getCurrentHistoryHash();
            final boolean isValid = isCurrentHistoryHashValid(currentHash);
            if (stateTokenToOpen != null) {
                // The open event already received, so open the content
                Log.info("Opening token from JSNI open call");
                getContentFromHistoryHash(stateTokenToOpen);
            } else if (isValid) {
                // We start the embed from the url #hash
                Log.info("Opening token from history token");
                stateTokenToOpen = currentHash;
                getContentFromHistoryHash(currentHash);
            } else {
                // We embed the document via JSNI, so, we wait for the open event
            }
            // We configure sign-out
            session.onUserSignOut(false, new UserSignOutHandler() {
                @Override
                public void onUserSignOut(final UserSignOutEvent event) {
                    Log.info("On user sign out");
                    if (stateTokenToOpen != null) {
                        getContentFromHistoryHash(stateTokenToOpen);
                    }
                }
            });
        }
    });
}

From source file:cc.kune.wave.client.kspecific.WaveClientManager.java

License:GNU Affero Public License

@Inject
public WaveClientManager(final Session session, final EventBus eventBus, final HasWaveContainer panel,
        final KuneWaveProfileManager profiles, final WaveClientProvider webclientView) {
    eventBus.addHandler(WaveSessionAvailableEvent.getType(), new WaveSessionAvailableHandler() {
        @Override/* ww  w.  j  a  va2s. c  om*/
        public void onWaveSessionAvailable(final WaveSessionAvailableEvent event) {
            final UserInfoDTO result = event.getUserInfo();
            setSessionJSON(JsonUtils.safeEval(result.getSessionJSON()));
            setClientFlags(JsonUtils.safeEval(result.getClientFlags()));
            setWebsocketAddress(result.getWebsocketAddress());
            Log.info("Wave client session: " + result.getSessionJSON());
            Log.info("Wave websocket address: " + result.getWebsocketAddress());
            ready = true;
            Scheduler.get().scheduleDeferred(new ScheduledCommand() {
                @Override
                public void execute() {
                    final ForIsWidget waveContainer = panel.getForIsWidget();
                    if (webClient == null) {
                        if (waveContainer.getWidgetCount() > 0) {
                            waveContainer.remove(0);
                        }
                        webClient = webclientView.get();
                        waveContainer.add(webClient);
                    } else {
                        // this is done with the first webclient creation above
                        webClient.login();
                        webClient.asWidget().setVisible(true);
                    }
                }
            });
        }
    });
    session.onUserSignOut(true, new UserSignOutHandler() {
        @Override
        public void onUserSignOut(final UserSignOutEvent event) {
            ready = false;
            if (webClient != null) {
                webClient.asWidget().setVisible(false);
                webClient.logout();
            }
            setSessionJSON(JsonUtils.safeEval("{}"));
            setClientFlags(JsonUtils.safeEval("{}"));
        }
    });
}

From source file:cl.uai.client.data.SubmissionGradeData.java

License:Open Source License

/**
 * Loads the configuration for a submission 
 * @param values//w w  w .j  av  a  2  s  .  c o m
 * @throws Exception
 */
public static SubmissionGradeData createFromConfiguration(Map<String, String> values) {

    SubmissionGradeData submissionData = new SubmissionGradeData();

    try {
        submissionData.setId(Integer.parseInt(values.get("id")));
        submissionData.setGrademin(Float.parseFloat(values.get("grademin")));
        submissionData.setGrademax(Float.parseFloat(values.get("grademax")));
        submissionData.setCourseid(Integer.parseInt(values.get("courseid")));
        submissionData.setCoursename(values.get("coursename"));
        submissionData.setCourseshort(values.get("courseshort"));
        submissionData.setMarkeremail(values.get("markeremail"));
        submissionData.setMarkerfirstname(values.get("markerfirstname"));
        submissionData.setMarkerlastname(values.get("markerlastname"));
        submissionData.setMarkerid(Integer.parseInt(values.get("markerid")));
        submissionData.setActivityname(values.get("activityname"));
        submissionData.setFeedback(values.get("feedback"));
        submissionData.setChangelog(values.get("changelog"));
        submissionData.setCustommarks(values.get("custommarks"));
        submissionData.setQualitycontrol(values.get("qualitycontrol").equals("1"));
        submissionData.setCoursemoduleid(Integer.parseInt(values.get("coursemodule")));
        submissionData.setDatecreated(Long.parseLong(values.get("timecreated")));
        submissionData.setRegraderestrictdates(values.get("regraderestrictdates").equals("1"));
        submissionData.setRegradeopendate(new Date(Long.parseLong(values.get("regradesopendate")) * 1000));
        submissionData.setRegradeclosedate(new Date(Long.parseLong(values.get("regradesclosedate")) * 1000));
        submissionData.setFinalgrade(Float.parseFloat(values.get("finalgrade")));
        submissionData.setDatemodified(Long.parseLong(values.get("timemodified")));

        String drafts = values.get("drafts");
        if (drafts != null) {
            List<Integer> draftIds = new ArrayList<Integer>();
            for (String did : drafts.split(",")) {
                int id = Integer.parseInt(did);
                draftIds.add(id);
            }
            submissionData.setDrafts(draftIds);
        }

        JSONObject rubricobj = new JSONObject(JsonUtils.safeEval(values.get("rubric")));
        List<Map<String, String>> rubric = AjaxRequest.getValuesFromResult(rubricobj);

        SortedMap<Integer, Criterion> definition = new TreeMap<Integer, Criterion>();

        for (Map<String, String> criterion : rubric) {
            int criterionId = Integer.parseInt(criterion.get("id"));
            int criterionSortOrder = Integer.parseInt(criterion.get("sortorder"));
            float maxscore = Float.parseFloat(criterion.get("maxscore"));
            String criterionDescription = criterion.get("description").toString();
            submissionData.setRubricname(criterion.get("rubricname").toString());
            int regradeid = Integer.parseInt(criterion.get("regradeid"));
            int regradeaccepted = Integer.parseInt(criterion.get("regradeaccepted"));
            int regrademotive = Integer.parseInt(criterion.get("motive"));
            boolean markerIsAssigned = Integer.parseInt(criterion.get("markerassigned")) == 1;
            String regradecomment = criterion.get("regradecomment").toString();
            String regrademarkercomment = criterion.get("regrademarkercomment").toString();

            JSONObject obj = new JSONObject(JsonUtils.safeEval(criterion.get("levels")));
            List<Map<String, String>> levels = AjaxRequest.getValuesFromResult(obj);

            SortedMap<Integer, Level> levelsdata = new TreeMap<Integer, Level>();
            Criterion criteriondata = new Criterion(criterionId, criterionDescription, maxscore, regradeid,
                    regradeaccepted, levelsdata, criterionSortOrder);
            criteriondata.setMarkerIsAssigned(markerIsAssigned);
            criteriondata.setRegradeComment(regradecomment);
            criteriondata.setRegradeMarkerComment(regrademarkercomment);
            criteriondata.setRegrademotive(regrademotive);
            for (Map<String, String> level : levels) {
                Level levelData = new Level(criteriondata, Integer.parseInt(level.get("id").toString()),
                        level.get("description").toString(),
                        // SafeHtmlUtils.htmlEscape(level.get("description").toString()),
                        Float.parseFloat(level.get("score").toString()));
                float bonus = Float.parseFloat(criterion.get("bonus").toString());
                int commentpage = Integer.parseInt(level.get("commentpage").toString());
                int markid = Integer.parseInt(level.get("commentid").toString());
                levelData.setBonus(bonus);
                levelData.setPage(commentpage);
                levelData.setMarkId(markid);
                levelsdata.put(levelData.getId(), levelData);

                if (markid > 0) {
                    criteriondata.setSelectedLevel(levelData.getId());
                }
            }

            criteriondata.setHueColor(definition.size());
            definition.put(criteriondata.getId(), criteriondata);
        }

        submissionData.setRubricDefinition(definition);

        JSONObject answerkeysjson = new JSONObject(JsonUtils.safeEval(values.get("answerkeys")));
        List<Map<String, String>> answerkeyslist = AjaxRequest.getValuesFromResult(answerkeysjson);

        SortedMap<Integer, Submission> answerkeys = new TreeMap<Integer, Submission>();

        boolean thisIsAnswerKey = false;
        for (Map<String, String> answerkey : answerkeyslist) {
            Submission sub = new Submission(answerkey);
            answerkeys.put(sub.getId(), sub);
            if (sub.getId() == submissionData.getId()) {
                thisIsAnswerKey = true;
            }
        }

        submissionData.answerKeys = answerkeys;
        submissionData.answerkey = thisIsAnswerKey;

    } catch (Exception e) {
        logger.severe(e.getLocalizedMessage());
        return null;
    }

    return submissionData;
}

From source file:com.bramosystems.oss.player.playlist.client.PlaylistFactory.java

License:Apache License

/**
 * Parses playlist data in JSPF format to SPFPlaylist object
 * //from   w w  w. j  av a2s  .  c  o m
 * @param jspf playlist data in JSPF format
 * 
 * @return SPFPlaylist object
 * @throws ParseException if an error occurs during parsing
 */
public static SPFPlaylist parseJspfPlaylist(String jspf) throws ParseException {
    try {
        return ((JSPFPlaylist) JsonUtils.safeEval(jspf)).getPlaylist();
    } catch (Exception e) {
        throw new ParseException("Parse Error", e);
    }
}

From source file:com.dawg6.web.dhcalc.client.GearPanel.java

License:Open Source License

@SuppressWarnings("unchecked")
public GearPanel() {

    HorizontalPanel panel = new HorizontalPanel();
    initWidget(panel);/*w  w  w  . j  a  va 2 s.co  m*/

    VerticalPanel verticalPanel_1 = new VerticalPanel();
    panel.add(verticalPanel_1);

    CaptionPanel captionPanel = new CaptionPanel("Current Items");
    verticalPanel_1.add(captionPanel);

    FlexTable table = new FlexTable();
    captionPanel.add(table);

    CaptionPanel cptnpnlNewPanel = new CaptionPanel("Saved Items");
    panel.add(cptnpnlNewPanel);

    VerticalPanel verticalPanel = new VerticalPanel();
    cptnpnlNewPanel.setContentWidget(verticalPanel);
    verticalPanel.setSize("5cm", "3cm");

    savedItems = new ListBox();
    verticalPanel.add(savedItems);
    savedItems.setVisibleItemCount(20);
    savedItems.setWidth("100%");

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.setSpacing(5);
    verticalPanel.add(horizontalPanel);

    Button btnNewButton = new Button("New button");
    btnNewButton.setText("Rename...");
    horizontalPanel.add(btnNewButton);

    btnNewButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            renameItem();
        }
    });

    Button btnNewButton_1 = new Button("New button");
    btnNewButton_1.setText("Delete");
    horizontalPanel.add(btnNewButton_1);

    btnNewButton_1.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            deleteItem();
        }
    });

    int row = 0;

    for (Slot slot : Slot.values())
        if (!slot.isCube()) {
            final Slot thisSlot = slot;

            Label label = new Label(slot.name());
            label.addStyleName("boldText");
            table.setWidget(row, 0, label);

            Anchor status = new Anchor("unloaded");
            status.setTarget("_blank");
            status.setHref("javascript:void(0);");
            table.setWidget(row, 1, status);
            labels.put(slot, status);
            status.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    event.preventDefault();
                    clickItem(thisSlot);

                }
            });

            Button saveButton = new Button("save");
            table.setWidget(row, 2, saveButton);
            saveButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    saveSlot(thisSlot);
                }
            });

            Button replaceButton = new Button("replace");
            table.setWidget(row, 3, replaceButton);
            replaceButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    replaceSlot(thisSlot);
                }
            });

            Button clearButton = new Button("clear");
            table.setWidget(row, 4, clearButton);
            clearButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    clearSlot(thisSlot);
                }
            });

            row++;
        }

    Storage storage = getStorage();

    if (storage != null) {
        String data = storage.getItem(SAVED_ITEMS);
        JsoArray<Entry> list = null;

        if (data != null) {
            list = JsonUtils.safeEval(data);
        } else {
            list = (JsoArray<Entry>) JavaScriptObject.createArray();
        }

        for (int i = 0; i < list.length(); i++) {
            Entry e = list.get(i);
            savedItems.addItem(e.getName(), e.getItem());
        }

    }

    setVisible(false);
}

From source file:com.dawg6.web.dhcalc.client.GearPanel.java

License:Open Source License

@SuppressWarnings("unchecked")
private JsoArray<Entry> getSavedItems() {
    Storage storage = getStorage();/*from   w  w w. java  2s .  c o  m*/

    if (storage != null) {
        String data = storage.getItem(SAVED_ITEMS);
        JsoArray<Entry> list = null;

        if (data != null) {
            list = JsonUtils.safeEval(data);
        } else {
            list = (JsoArray<Entry>) JavaScriptObject.createArray();
        }

        return list;

    } else {
        return (JsoArray<Entry>) JavaScriptObject.createArray();
    }
}

From source file:com.github.nmorel.gwtjackson.client.stream.impl.DefaultJsonReader.java

License:Apache License

@Override
public JavaScriptObject nextJavaScriptObject(boolean useSafeEval) {
    int p = peeked;
    if (p == PEEKED_NONE) {
        p = doPeek();// ww  w  .  j a  v  a  2  s  . c  o  m
    }

    switch (p) {
    case PEEKED_BEGIN_OBJECT:
    case PEEKED_BEGIN_ARRAY:
        JavaScriptObject result;
        int peekStack = stack.get(stackSize - 1);
        if (peekStack == JsonScope.NONEMPTY_DOCUMENT) {
            // start of the document
            String toEval = in.getInput();
            result = useSafeEval ? JsonUtils.safeEval(toEval) : JsonUtils.unsafeEval(toEval);
            // we read everything, we move the pointer to the end of the document
            pos = toEval.length();
            limit = toEval.length();
            peeked = PEEKED_NONE;
        } else {
            String toEval = nextValue();
            result = useSafeEval ? JsonUtils.safeEval(toEval) : JsonUtils.unsafeEval(toEval);
        }
        return result;
    default:
        throw new IllegalStateException("Expected an array or object to evaluate a JavaScriptObject but was "
                + peek() + " at line " + getLineNumber() + " column " + getColumnNumber());
    }
}

From source file:com.github.nmorel.gwtjackson.client.stream.impl.NonBufferedJsonReader.java

License:Apache License

@Override
public JavaScriptObject nextJavaScriptObject(boolean useSafeEval) {
    int p = peeked;
    if (p == PEEKED_NONE) {
        p = doPeek();//ww  w .ja v  a2 s.  c o m
    }

    switch (p) {
    case PEEKED_BEGIN_OBJECT:
    case PEEKED_BEGIN_ARRAY:
        JavaScriptObject result;
        int peekStack = stack.get(stackSize - 1);
        if (peekStack == JsonScope.NONEMPTY_DOCUMENT) {
            // start of the document
            String toEval = in;
            result = useSafeEval ? JsonUtils.safeEval(toEval) : JsonUtils.unsafeEval(toEval);
            // we read everything, we move the pointer to the end of the document
            pos = toEval.length();
            peeked = PEEKED_NONE;
        } else {
            String toEval = nextValue();
            result = useSafeEval ? JsonUtils.safeEval(toEval) : JsonUtils.unsafeEval(toEval);
        }
        return result;
    default:
        throw new IllegalStateException("Expected an array or object to evaluate a JavaScriptObject but was "
                + peek() + " at line " + getLineNumber() + " column " + getColumnNumber());
    }
}

From source file:com.google.api.explorer.client.history.EmbeddedHistoryItemView.java

License:Apache License

private static ErrorCase getErrorMessage(ApiResponse response) {
    // This requires a try-catch because there is no way to proactively check
    // that the JSON is both present and valid without just trying to parse it.
    try {//from   ww  w. ja va 2 s  .c  om
        DynamicJso jso = JsonUtils.safeEval(response.getBodyAsString());
        if (jso.get("error") != null) {
            return ErrorCase.forJsonString(response.getBodyAsString());
        }
    } catch (IllegalArgumentException e) {
        // Not valid json, definitely not an error payload.
    }
    return null;
}