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

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

Introduction

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

Prototype

public static native String escapeJsonForEval(String toEscape) ;

Source Link

Document

Escapes characters within a JSON string than cannot be passed directly to eval().

Usage

From source file:com.seanchenxi.gwt.storage.client.serializer.StorageSerializationStreamWriter.java

License:Apache License

@Override
public String toString() {
    StringBuffer buffer = new StringBuffer(OPEN_BRACKET);
    writePayload(buffer);/*from ww  w . jav  a 2 s  .  c om*/
    writeStringTable(buffer);
    writeHeader(buffer);
    return JsonUtils.escapeJsonForEval(buffer.append(CLOSE_BRACKET).toString());
}

From source file:next.celebs.api.JsonArrayReader.java

License:Apache License

@Override
public void onSuccess(Response response) {
    String txt = response.getText();
    Window.alert("1 succss '" + txt + "'");
    String escapedJSON = JsonUtils.escapeJsonForEval(txt);
    Window.alert("2 succss '" + escapedJSON + "'");
    JsArray<J> j = JsonUtils.safeEval(escapedJSON);
    Window.alert("3 succss '" + j + "'");
    ArrayList<T> msgs = JsUtils.toArray(j);
    Window.alert("4 msgs '" + msgs + "'");
    read(msgs, escapedJSON);//  ww  w  .j  a  va 2  s .  co m
}

From source file:next.celebs.api.JsonArrayStringReader.java

License:Apache License

@Override
public void onSuccess(Response response) {
    String txt = response.getText();
    String escapedJSON = JsonUtils.escapeJsonForEval(txt);
    JsArrayString j = JsonUtils.safeEval(escapedJSON);
    ArrayList<String> msgs = JsUtils.toListString(j);
    read(msgs);// w w  w .  j a  v  a 2  s.c o  m
}

From source file:next.celebs.JsoUtils.java

License:Apache License

@SuppressWarnings("unchecked")
public static <J extends JavaScriptObject> J toJSO(String json) {
    String escapedJSON = JsonUtils.escapeJsonForEval(json);
    JavaScriptObject j = JsonUtils.safeEval(escapedJSON);
    return (J) j;
}

From source file:next.celebs.JsoUtils.java

License:Apache License

public static <J extends JavaScriptObject> JsArray<J> toJSOArray(String json) {
    String escapedJSON = JsonUtils.escapeJsonForEval(json);
    JsArray<J> j = JsonUtils.safeEval(escapedJSON);
    return j;// w w  w. j a va 2  s . co m
}

From source file:org.pentaho.mantle.client.admin.ContentCleanerPanel.java

License:Open Source License

public void activate() {
    clear();/*  w w w.j a va 2  s  . c o  m*/
    String moduleBaseURL = GWT.getModuleBaseURL();
    String moduleName = GWT.getModuleName();
    String contextURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf(moduleName));

    RequestBuilder scheduleFileRequestBuilder = new RequestBuilder(RequestBuilder.GET,
            contextURL + "api/scheduler/getContentCleanerJob?cb=" + System.currentTimeMillis());
    scheduleFileRequestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
    scheduleFileRequestBuilder.setHeader("Content-Type", "application/json"); //$NON-NLS-1$//$NON-NLS-2$
    scheduleFileRequestBuilder.setHeader("accept", "application/json"); //$NON-NLS-1$//$NON-NLS-2$

    try {
        scheduleFileRequestBuilder.sendRequest("", new RequestCallback() {
            public void onError(Request request, Throwable exception) {
            }

            public void onResponseReceived(Request request, Response response) {
                final TextBox nowTextBox = new TextBox();
                nowTextBox.setWidth("24px");
                nowTextBox.getElement().getStyle().setPadding(5, Unit.PX);
                nowTextBox.getElement().getStyle().setMarginLeft(5, Unit.PX);
                nowTextBox.getElement().getStyle().setMarginRight(5, Unit.PX);
                final TextBox scheduleTextBox = new TextBox();
                scheduleTextBox.setVisibleLength(4);

                JsJob tmpJsJob = parseJsonJob(JsonUtils.escapeJsonForEval(response.getText()));

                boolean fakeJob = false;
                if (tmpJsJob == null) {
                    tmpJsJob = createJsJob();
                    fakeJob = true;
                }
                final JsJob jsJob = tmpJsJob;

                if (jsJob != null) {
                    scheduleTextBox.setValue("" + (Long.parseLong(jsJob.getJobParamValue("age")) / 86400L));
                } else {
                    scheduleTextBox.setText("180");
                }
                scheduleTextBox.addChangeHandler(new ChangeHandler() {
                    public void onChange(ChangeEvent event) {
                        if (jsJob != null) {
                            JsArray<JsJobParam> params = jsJob.getJobParams();
                            for (int i = 0; i < params.length(); i++) {
                                if (params.get(i).getName().equals("age")) {
                                    params.get(i).setValue(
                                            "" + (Long.parseLong(scheduleTextBox.getText()) * 86400L));
                                    break;
                                }
                            }
                        }
                    }
                });

                Label settingsLabel = new Label(Messages.getString("settings"));
                settingsLabel.setStyleName("pentaho-fieldgroup-major");
                add(settingsLabel, DockPanel.NORTH);

                VerticalPanel nowPanelWrapper = new VerticalPanel();
                Label deleteNowLabel = new Label(Messages.getString("deleteGeneratedFilesNow"));
                deleteNowLabel.getElement().getStyle().setPaddingTop(15, Unit.PX);
                deleteNowLabel.setStyleName("pentaho-fieldgroup-minor");
                nowPanelWrapper.add(deleteNowLabel);

                HorizontalPanel nowLabelPanel = new HorizontalPanel();
                nowLabelPanel.getElement().getStyle().setPaddingTop(10, Unit.PX);
                nowLabelPanel.getElement().getStyle().setPaddingBottom(10, Unit.PX);

                Label deleteGeneratedFilesOlderThan = new Label(
                        Messages.getString("deleteGeneratedFilesOlderThan"));
                deleteGeneratedFilesOlderThan.getElement().getStyle().setPaddingTop(7, Unit.PX);
                nowLabelPanel.add(deleteGeneratedFilesOlderThan);

                nowLabelPanel.add(nowTextBox);
                nowTextBox.setText("180");
                Label days = new Label(Messages.getString("daysDot"));
                days.getElement().getStyle().setPaddingTop(7, Unit.PX);
                nowLabelPanel.add(days);
                Button deleteNowButton = new Button(Messages.getString("deleteNow"));
                deleteNowButton.setStylePrimaryName("pentaho-button");
                deleteNowButton.addStyleName("first");
                deleteNowButton.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        MessageDialogBox warning = new MessageDialogBox(Messages.getString("deleteNow"),
                                Messages.getString("confirmDeleteGeneratedContentNow"), false, false, true,
                                Messages.getString("yes"), null, Messages.getString("no"));
                        warning.setCallback(new IDialogCallback() {
                            @Override
                            public void okPressed() {
                                deleteContentNow(Long.parseLong(nowTextBox.getValue()) * 86400L);
                            }

                            @Override
                            public void cancelPressed() {
                            }
                        });
                        warning.center();
                    }
                });
                nowPanelWrapper.add(nowLabelPanel);
                nowPanelWrapper.add(deleteNowButton);
                add(nowPanelWrapper, DockPanel.NORTH);

                // scheduled
                VerticalPanel scheduledPanel = new VerticalPanel();
                Label deleteScheduleLabel = new Label(Messages.getString("scheduleDeletionOfGeneratedFiles"));
                deleteScheduleLabel.setStyleName("pentaho-fieldgroup-minor");
                deleteScheduleLabel.getElement().getStyle().setPaddingTop(15, Unit.PX);
                scheduledPanel.add(deleteScheduleLabel);

                Label descLabel;
                if (!fakeJob) {
                    String desc = jsJob.getJobTrigger().getDescription();
                    descLabel = new Label(desc);
                    scheduledPanel.add(descLabel);
                } else {
                    descLabel = new Label(Messages.getString("generatedFilesAreNotScheduledToBeDeleted"));
                    scheduledPanel.add(descLabel);
                }
                descLabel.getElement().getStyle().setPaddingTop(10, Unit.PX);
                descLabel.getElement().getStyle().setPaddingBottom(10, Unit.PX);

                Button editScheduleButton = new Button(Messages.getString("edit"));
                if (fakeJob) {
                    editScheduleButton.setText(Messages.getString("scheduleDeletion"));
                }
                Button deleteScheduleButton = new Button(Messages.getString("cancelSchedule"));
                deleteScheduleButton.setStylePrimaryName("pentaho-button");
                deleteScheduleButton.addStyleName("last");
                deleteScheduleButton.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        deleteContentCleaner(jsJob);
                    }
                });
                editScheduleButton.setStylePrimaryName("pentaho-button");
                editScheduleButton.addStyleName("first");
                editScheduleButton.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        IDialogCallback callback = new IDialogCallback() {
                            public void okPressed() {
                                deleteContentCleaner(jsJob);
                            }

                            public void cancelPressed() {
                            }
                        };

                        HorizontalPanel scheduleLabelPanel = new HorizontalPanel();
                        scheduleLabelPanel
                                .add(new Label(Messages.getString("deleteGeneratedFilesOlderThan"), false));
                        scheduleLabelPanel.add(scheduleTextBox);
                        scheduleLabelPanel
                                .add(new Label(Messages.getString("daysUsingTheFollowingRules"), false));
                        ScheduleRecurrenceDialog editSchedule = new ScheduleRecurrenceDialog(null, jsJob,
                                callback, false, false, AbstractWizardDialog.ScheduleDialogType.SCHEDULER);
                        editSchedule.setShowSuccessDialog(false);
                        editSchedule.addCustomPanel(scheduleLabelPanel, DockPanel.NORTH);
                        editSchedule.center();
                    }
                });
                HorizontalPanel scheduleButtonPanel = new HorizontalPanel();
                scheduleButtonPanel.add(editScheduleButton);
                if (!fakeJob) {
                    scheduleButtonPanel.add(deleteScheduleButton);
                }
                scheduledPanel.add(scheduleButtonPanel);
                add(scheduledPanel, DockPanel.NORTH);

                VerticalPanel fillPanel = new VerticalPanel();
                add(fillPanel, DockPanel.NORTH);
                fillPanel.getElement().getParentElement().getStyle().setHeight(100, Unit.PCT);
            }
        });
    } catch (RequestException re) {
        //ignored
    }

}

From source file:org.pentaho.mantle.client.admin.JsEmailConfiguration.java

License:Open Source License

public static final JsEmailConfiguration parseJsonString(final String jsonString) {
    return (JsEmailConfiguration) parseEmailConfig(JsonUtils.escapeJsonForEval(jsonString));
}

From source file:org.pentaho.mantle.client.admin.PermissionsPanel.java

License:Open Source License

public void initializeActionBaseSecurityElements(String roleMappings) {
    JsLogicalRoleMap logicalRoleMap = (JsLogicalRoleMap) parseRoleMappings(
            JsonUtils.escapeJsonForEval(roleMappings));
    if (logicalRoles.size() == 0) {
        for (int i = 0; i < logicalRoleMap.getLogicalRoles().length(); i++) {

            CheckBox permCB = new CheckBox(logicalRoleMap.getLogicalRoles().get(i).getLocalizedName());
            permCB.addValueChangeHandler(
                    new RolesValueChangeListener(logicalRoleMap.getLogicalRoles().get(i).getRoleName()));
            add(permCB);//w  ww  .j a  va2s .c  o  m
            logicalRoles.put(logicalRoleMap.getLogicalRoles().get(i).getLocalizedName(),
                    new LogicalRoleInfo(logicalRoleMap.getLogicalRoles().get(i).getRoleName(), permCB));
        }
    }
    for (int j = 0; j < logicalRoleMap.getRoleAssignments().length(); j++) {
        String roleName = logicalRoleMap.getRoleAssignments().get(j).getRoleName();
        List<String> logicalRoles = new ArrayList<String>();
        JsArrayString jsLogicalRoles = logicalRoleMap.getRoleAssignments().get(j).getAssignedLogicalRoles();
        if (jsLogicalRoles != null) {
            for (int k = 0; k < jsLogicalRoles.length(); k++) {
                logicalRoles.add(jsLogicalRoles.get(k));
            }
        }
        masterRoleMap.put(roleName, logicalRoles);
        if (logicalRoleMap.getRoleAssignments().get(j).isImmutable()) {
            immutableRoles.add(roleName);
        }
    }
}

From source file:org.pentaho.mantle.client.commands.NewDropdownCommand.java

License:Open Source License

protected void performOperation(boolean feedback) {
    final PopupPanel popup = new PopupPanel(true, false) {
        public void show() {
            // show glass pane
            super.show();
            if (pageBackground == null) {
                pageBackground = new FocusPanel() {
                    public void onBrowserEvent(Event event) {
                        int type = event.getTypeInt();
                        switch (type) {
                        case Event.ONKEYDOWN: {
                            if ((char) event.getKeyCode() == KeyCodes.KEY_ESCAPE) {
                                event.stopPropagation();
                                hide();/*from ww w. j av a  2  s .co m*/
                            }
                            return;
                        }
                        }
                        super.onBrowserEvent(event);
                    };
                };
                pageBackground.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        hide();
                        pageBackground.setVisible(false);
                        pageBackground.getElement().getStyle().setDisplay(Display.NONE);
                    }
                });
                RootPanel.get().add(pageBackground, 0, 0);
            }
            pageBackground.setSize("100%", Window.getClientHeight() + Window.getScrollTop() + "px"); //$NON-NLS-1$ //$NON-NLS-2$
            pageBackground.setVisible(true);
            pageBackground.getElement().getStyle().setDisplay(Display.BLOCK);

            // hide <embeds>
            // TODO: migrate to GlassPane Listener
            FrameUtils.toggleEmbedVisibility(false);

            // Notify listeners that we're showing a dialog (hide PDFs, flash).
            GlassPane.getInstance().show();
        }

        public void hide(boolean autoClosed) {
            super.hide(autoClosed);
            pageBackground.setVisible(false);
            GlassPane.getInstance().hide();
        }

        protected void onPreviewNativeEvent(final NativePreviewEvent event) {
            // Switch on the event type
            int type = event.getTypeInt();
            switch (type) {
            case Event.ONKEYDOWN: {
                Event nativeEvent = Event.as(event.getNativeEvent());
                if ((char) nativeEvent.getKeyCode() == KeyCodes.KEY_ESCAPE) {
                    event.cancel();
                    hide();
                }
                return;
            }
            }
        };
    };

    if (popup.isShowing()) {
        popup.hide();
        return;
    }

    String url = GWT.getHostPageBaseURL() + "api/plugin-manager/settings/new-toolbar-button"; //$NON-NLS-1$
    RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, url);
    rb.setHeader("Content-Type", "text/plain"); //$NON-NLS-1$//$NON-NLS-2$
    rb.setHeader("accept", "application/json"); //$NON-NLS-1$//$NON-NLS-2$
    rb.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
    try {
        rb.sendRequest(null, new RequestCallback() {

            @Override
            public void onError(Request request, Throwable exception) {
                MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$
                        exception.getMessage(), //$NON-NLS-2$
                        false, false, true);
                dialogBox.center();
            }

            @Override
            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == 200) {
                    JsArray<JsCreateNewConfig> jsarray = parseJson(
                            JsonUtils.escapeJsonForEval(response.getText()));
                    final ArrayList<JsCreateNewConfig> sorted = new ArrayList<JsCreateNewConfig>();
                    for (int i = 0; i < jsarray.length(); i++) {
                        sorted.add(jsarray.get(i));
                    }
                    Collections.sort(sorted, new JsCreateNewConfigComparator());
                    popup.setStyleName("newToolbarDropdown");
                    VerticalPanel buttonPanel = new VerticalPanel();
                    popup.add(buttonPanel);
                    for (int i = 0; i < sorted.size(); i++) {
                        final int finali = i;
                        String enabledUrl = sorted.get(i).getEnabledUrl();
                        if (buttonEnabled(enabledUrl)) {
                            Button button = new Button(Messages.getString(sorted.get(i).getLabel()));
                            button.setStyleName("pentaho-button");
                            button.getElement().addClassName("newToolbarDropdownButton");
                            button.addClickHandler(new ClickHandler() {
                                public void onClick(ClickEvent event) {
                                    if (sorted.get(finali).getActionUrl().startsWith("javascript:")) {
                                        doEvalJS(sorted.get(finali).getActionUrl()
                                                .substring("javascript:".length()));
                                    } else {
                                        SolutionBrowserPanel.getInstance().getContentTabPanel().showNewURLTab(
                                                Messages.getString(sorted.get(finali).getTabName()),
                                                Messages.getString(sorted.get(finali).getTabName()),
                                                sorted.get(finali).getActionUrl(), false);
                                    }
                                    popup.hide();
                                }
                            });
                            String name = sorted.get(i).getName();
                            if ("data-access".equals(name)) {
                                buttonPanel.add(new HTML("<hr style='color: #a7a7a7' />"));
                            }
                            buttonPanel.add(button);
                        }
                    }
                    popup.setPopupPosition(anchorWidget.getAbsoluteLeft(),
                            anchorWidget.getAbsoluteTop() + anchorWidget.getOffsetHeight());
                    popup.show();
                } else {
                    MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$
                            Messages.getString("error"), //$NON-NLS-1$
                            false, false, true);
                    dialogBox.center();
                }
            }

            private boolean buttonEnabled(String enabledUrl) {
                if (enabledUrl == null || enabledUrl.isEmpty()) {
                    return true;
                } else {
                    Boolean enabled = false;
                    try {
                        enabled = Boolean.valueOf(sendRequest(enabledUrl));
                    } catch (Exception e) {
                    }
                    return enabled;
                }
            }

        });
    } catch (RequestException e) {
        MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), e.getMessage(), //$NON-NLS-1$ //$NON-NLS-2$
                false, false, true);
        dialogBox.center();
    }

}

From source file:org.pentaho.mantle.client.dialogs.scheduling.ScheduleRecurrenceDialog.java

License:Open Source License

/**
 * Before creating a new schedule, we want to check to see if the schedule that is being created is going to conflict
 * with any one of the blockout periods if one is provisioned.
 *
 * @param schedule/*from w w  w.ja  v  a  2  s.com*/
 * @param trigger
 */
protected void verifyBlockoutConflict(final JSONObject schedule, final JsJobTrigger trigger) {
    String url = ScheduleHelper.getFullyQualifiedURL() + "api/scheduler/blockout/blockstatus"; //$NON-NLS-1$

    RequestBuilder blockoutConflictRequest = new RequestBuilder(RequestBuilder.POST, url);
    blockoutConflictRequest.setHeader("accept", "application/json"); //$NON-NLS-1$ //$NON-NLS-2$
    blockoutConflictRequest.setHeader("Content-Type", "application/json"); //$NON-NLS-1$ //$NON-NLS-2$
    blockoutConflictRequest.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");

    final JSONObject verifyBlockoutParams = schedule;
    verifyBlockoutParams.put("jobName", new JSONString(scheduleName)); //$NON-NLS-1$

    try {
        blockoutConflictRequest.sendRequest(verifyBlockoutParams.toString(), new RequestCallback() {
            @Override
            public void onError(Request request, Throwable exception) {
                MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), //$NON-NLS-1$
                        exception.toString(), false, false, true);
                dialogBox.center();
                setDone(false);
            }

            @Override
            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == Response.SC_OK) {
                    JsBlockStatus statusResponse = (JsBlockStatus) parseJson(
                            JsonUtils.escapeJsonForEval(response.getText()));

                    // Determine if this schedule conflicts all the time or some of the time
                    boolean partiallyBlocked = Boolean.parseBoolean(statusResponse.getPartiallyBlocked());
                    boolean totallyBlocked = Boolean.parseBoolean(statusResponse.getTotallyBlocked());
                    if (partiallyBlocked || totallyBlocked) {
                        promptDueToBlockoutConflicts(totallyBlocked, partiallyBlocked, schedule, trigger);
                    } else {
                        // Continue with other panels in the wizard (params, email)
                        handleWizardPanels(schedule, trigger);
                    }
                } else {
                    handleWizardPanels(schedule, trigger);
                }
            }
        });
    } catch (RequestException e) {
        // ignored
    }

    super.nextClicked();
}