Example usage for com.google.gwt.http.client RequestBuilder POST

List of usage examples for com.google.gwt.http.client RequestBuilder POST

Introduction

In this page you can find the example usage for com.google.gwt.http.client RequestBuilder POST.

Prototype

Method POST

To view the source code for com.google.gwt.http.client RequestBuilder POST.

Click Source Link

Document

Specifies that the HTTP POST method should be used.

Usage

From source file:org.rhq.coregui.client.UserSessionManager.java

License:Open Source License

private static RequestBuilder createSessionAccessRequestBuilder() {
    final RequestBuilder b = new RequestBuilder(RequestBuilder.POST, "/portal/sessionAccess");
    b.setHeader("Accept", "text/plain");
    return b;/*from  w  w w .  j  a v  a2s. c o m*/
}

From source file:org.rhq.enterprise.gui.coregui.client.LoginView.java

License:Open Source License

private void login(final String username, final String password) {

    loginButton.setDisabled(true);/* w ww .  ja v a2s  .com*/

    try {
        RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, "/j_security_check.do");
        requestBuilder.setHeader("Content-Type", "application/x-www-form-urlencoded");
        // URL-encode the username and password in case they contain URL special characters ('?', '&', '%', '+',
        // etc.), which would corrupt the request if not encoded.
        String encodedUsername = URL.encodeQueryString(username);
        String encodedPassword = URL.encodeQueryString(password);
        String requestData = "j_username=" + encodedUsername + "&j_password=" + encodedPassword;
        requestBuilder.setRequestData(requestData);
        requestBuilder.setCallback(new RequestCallback() {
            public void onResponseReceived(Request request, Response response) {
                int statusCode = response.getStatusCode();
                if (statusCode == 200) {
                    window.destroy();
                    loginShowing = false;
                    UserSessionManager.login(username, password);
                } else {
                    handleError(statusCode);
                }
            }

            public void onError(Request request, Throwable exception) {
                handleError(0);
            }
        });
        requestBuilder.send();
    } catch (Exception e) {
        handleError(0);
    }
}

From source file:org.rhq.enterprise.gui.coregui.client.UserSessionManager.java

License:Open Source License

private static RequestBuilder createSessionAccessRequestBuilder() {
    final RequestBuilder b = new RequestBuilder(RequestBuilder.POST, "/sessionAccess");
    b.setHeader("Accept", "text/plain");
    return b;/*  ww w  .  ja v  a  2s .co  m*/
}

From source file:org.rstudio.core.client.jsonrpc.RpcRequest.java

License:Open Source License

public void send(RpcRequestCallback callback) {
    // final references for access from anonymous class
    final RpcRequest enclosingRequest = this;
    final RpcRequestCallback requestCallback = callback;

    // build json request object
    JSONObject request = new JSONObject();
    request.put("method", new JSONString(method_));
    if (params_ != null)
        request.put("params", params_);
    if (kwparams_ != null)
        request.put("kwparams", kwparams_);

    // add src window if we have it
    if (sourceWindow_ != null)
        request.put("sourceWnd", sourceWindow_);

    // add client id if we have it
    if (clientId_ != null)
        request.put("clientId", clientId_);

    // add client version
    request.put("version", clientVersion_);

    // configure request builder
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url_);
    builder.setHeader("Content-Type", "application/json");
    builder.setHeader("Accept", "application/json");
    String requestId = Integer.toString(Random.nextInt());
    builder.setHeader("X-RS-RID", requestId);

    // send request
    try {//from  ww w.jav a  2 s  . c  om
        String requestString = request.toString();
        if (TRACE)
            Debug.log("Request: " + requestString);

        requestLogEntry_ = RequestLog.log(requestId, redactLog_ ? "[REDACTED]" : requestString);

        request_ = builder.sendRequest(requestString, new RequestCallback() {

            public void onError(Request request, Throwable exception) {
                requestLogEntry_.logResponse(ResponseType.Error, exception.getLocalizedMessage());
                // ERROR: Request failed
                RpcError error = RpcError.create(RpcError.TRANSMISSION_ERROR, exception.getLocalizedMessage());
                requestCallback.onError(enclosingRequest, error);
            }

            public void onResponseReceived(Request request, Response response) {
                // only accept 200 responses
                int status = response.getStatusCode();
                if (status == 200) {
                    // attempt to parse the response
                    RpcResponse rpcResponse = null;
                    try {
                        String responseText = response.getText();
                        if (TRACE)
                            Debug.log("Response: " + responseText);
                        requestLogEntry_.logResponse(ResponseType.Normal, responseText);
                        rpcResponse = RpcResponse.parse(responseText);

                        // response received and validated, process it!
                        requestCallback.onResponseReceived(enclosingRequest, rpcResponse);
                    } catch (Exception e) {
                        // ERROR: Unable to parse JSON
                        RpcError error = RpcError.create(RpcError.TRANSMISSION_ERROR, e.getLocalizedMessage());
                        requestCallback.onError(enclosingRequest, error);
                    }
                } else {
                    // ERROR: Non-200 response from server

                    // default error message
                    String message = "Status code " + Integer.toString(status) + " returned";

                    // override error message for status code 0
                    if (status == 0) {
                        message = "Unable to establish connection with R session";
                    }

                    requestLogEntry_.logResponse(ResponseType.Unknown, message);
                    RpcError error = RpcError.create(RpcError.TRANSMISSION_ERROR, message);
                    requestCallback.onError(enclosingRequest, error);
                }
            };
        });
    } catch (RequestException e) {
        // ERROR: general request failure

        String message = e.getLocalizedMessage();

        if (requestLogEntry_ != null)
            requestLogEntry_.logResponse(ResponseType.Unknown, message);

        RpcError error = RpcError.create(RpcError.TRANSMISSION_ERROR, message);
        requestCallback.onError(enclosingRequest, error);
    }
}

From source file:org.sigmah.client.page.login.LoginView.java

License:Open Source License

private void doLogin(final String login, final String password, final Button loginButton, final Image loader) {
    final String query = "email=" + URL.encodeComponent(login) + "&password=" + URL.encodeComponent(password);

    final RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, "../Login/service");
    requestBuilder.setCallback(new RequestCallback() {
        @Override//from  www.ja v a  2  s  . com
        public void onResponseReceived(Request request, Response response) {
            if (response.getText().contains("OK"))
                Window.Location.reload();
            else {
                MessageBox.alert(I18N.CONSTANTS.loginConnectErrorTitle(),
                        I18N.CONSTANTS.loginConnectErrorBadLogin(), null);
                loginButton.setEnabled(true);
                loader.getElement().getStyle().setVisibility(Visibility.HIDDEN);
            }
        }

        @Override
        public void onError(Request request, Throwable exception) {
            MessageBox.alert(I18N.CONSTANTS.loginConnectErrorTitle(), exception.getMessage(), null);
            loginButton.setEnabled(true);
            loader.getElement().getStyle().setVisibility(Visibility.HIDDEN);
        }
    });

    requestBuilder.setRequestData(query);
    requestBuilder.setHeader("Content-Type", "application/x-www-form-urlencoded");

    loginButton.setEnabled(false);
    loader.getElement().getStyle().setVisibility(Visibility.VISIBLE);
    try {
        requestBuilder.send();
    } catch (RequestException ex) {
        MessageBox.alert(I18N.CONSTANTS.loginConnectErrorTitle(), ex.getMessage(), null);
    }
}

From source file:org.sigmah.shared.servlet.ServletRequestBuilder.java

License:Open Source License

/**
 * Returns if the current {@link #requestMethod} is set to {@code POST}.
 * //from  w  ww  .j  a  va 2 s.  c o m
 * @return {@code true} if the current {@link #requestMethod} is set to {@code POST}.
 */
private boolean isPostMethod() {
    return RequestBuilder.POST.equals(requestMethod);
}

From source file:org.t3as.snomedct.gwt.client.gwt.AnalyseHandler.java

License:Open Source License

private void sendTextToServer() {
    statusLabel.setText("");
    conceptList.clear();//from   www.j a va2 s .c o  m

    // don't do anything if we have no text
    final String text = mainTextArea.getText();
    if (text.length() < 1) {
        statusLabel.setText(messages.pleaseEnterTextLabel());
        return;
    }

    // disable interaction while we wait for the response
    glassPanel.setPositionAndShow();

    // build up the AnalysisRequest JSON object
    // start with any options
    final JSONArray options = new JSONArray();
    setSemanticTypesOption(types, options);
    // defaults
    options.set(options.size(), new JSONString("word_sense_disambiguation"));
    options.set(options.size(), new JSONString("composite_phrases 8"));
    options.set(options.size(), new JSONString("no_derivational_variants"));
    options.set(options.size(), new JSONString("strict_model"));
    options.set(options.size(), new JSONString("ignore_word_order"));
    options.set(options.size(), new JSONString("allow_large_n"));
    options.set(options.size(), new JSONString("restrict_to_sources SNOMEDCT_US"));

    final JSONObject analysisRequest = new JSONObject();
    analysisRequest.put("text", new JSONString(text));
    analysisRequest.put("options", options);

    // send the input to the server
    final RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, webserviceUrl);
    builder.setHeader("Content-Type", MediaType.APPLICATION_JSON);
    builder.setRequestData(analysisRequest.toString());

    // create the async callback
    builder.setCallback(new SnomedRequestCallback(conceptList, statusLabel, glassPanel, typeCodeToDescription));

    // send the request
    try {
        builder.send();
    } catch (final RequestException e) {
        statusLabel.setText(messages.problemPerformingAnalysisLabel());
        GWT.log("There was a problem performing the analysis: " + e.getMessage(), e);
        glassPanel.hide();
    }
}

From source file:org.talend.mdm.webapp.recyclebin.client.MainFramePanel.java

License:Open Source License

private void initGrid() {
    List<ColumnConfig> ccList = new ArrayList<ColumnConfig>();
    CheckBoxSelectionModel<ItemsTrashItem> sm = new CheckBoxSelectionModel<ItemsTrashItem>();
    sm.setSelectionMode(SelectionMode.MULTI);
    ccList.add(sm.getColumn());//from   w  w w . j a v  a2s  .  co  m
    ColumnConfig colPK = new ColumnConfig();
    colPK.setId("dataClusterName");//$NON-NLS-1$
    colPK.setWidth(COLUMN_WIDTH);
    colPK.setHeader(MessagesFactory.getMessages().dataClusterName());
    ccList.add(colPK);
    ColumnConfig colDataModelName = new ColumnConfig();
    colDataModelName.setId("dataModelName");//$NON-NLS-1$
    colDataModelName.setWidth(COLUMN_WIDTH);
    colDataModelName.setHeader(MessagesFactory.getMessages().dataModelName());
    ccList.add(colDataModelName);
    ColumnConfig colConceptName = new ColumnConfig();
    colConceptName.setId("conceptName");//$NON-NLS-1$
    colConceptName.setWidth(COLUMN_WIDTH);
    colConceptName.setHeader(MessagesFactory.getMessages().conceptName());
    ccList.add(colConceptName);
    ColumnConfig colIds = new ColumnConfig();
    colIds.setId("ids");//$NON-NLS-1$
    colIds.setWidth(COLUMN_WIDTH);
    colIds.setHeader(MessagesFactory.getMessages().Ids());
    ccList.add(colIds);
    ColumnConfig colItemName = new ColumnConfig();
    colItemName.setId("itemName");//$NON-NLS-1$
    colItemName.setWidth(COLUMN_WIDTH);
    colItemName.setHeader(MessagesFactory.getMessages().name());
    ccList.add(colItemName);
    ColumnConfig colUserName = new ColumnConfig();
    colUserName.setId("insertionUserName");//$NON-NLS-1$
    colUserName.setWidth(COLUMN_WIDTH);
    colUserName.setHeader(MessagesFactory.getMessages().UserName());
    ccList.add(colUserName);
    ColumnConfig colDate = new ColumnConfig();
    colDate.setId("insertionTime");//$NON-NLS-1$
    colDate.setWidth(COLUMN_WIDTH);
    colDate.setHeader(MessagesFactory.getMessages().Date());
    ccList.add(colDate);
    ColumnConfig colProjection = new ColumnConfig("projection", "projection", 0);//$NON-NLS-1$ //$NON-NLS-2$
    colProjection.setHidden(true);
    ccList.add(colProjection);
    ColumnConfig colDelete = new ColumnConfig();
    colDelete.setId("delete");//$NON-NLS-1$
    colDelete.setWidth(50);
    colDelete.setHeader(MessagesFactory.getMessages().delete());
    colDelete.setRenderer(new GridCellRenderer<ItemsTrashItem>() {

        @Override
        public Object render(final ItemsTrashItem model, String property, ColumnData config, int rowIndex,
                int colIndex, ListStore<ItemsTrashItem> store, final Grid<ItemsTrashItem> modelGrid) {
            Image image = new Image();
            image.setResource(Icons.INSTANCE.delete());
            image.addStyleName("clickable"); //$NON-NLS-1$
            image.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    service.isEntityPhysicalDeletable(model.getConceptName(),
                            new SessionAwareAsyncCallback<Boolean>() {

                                @Override
                                protected void doOnFailure(Throwable caught) {
                                    String errorMsg = caught.getLocalizedMessage();
                                    if (errorMsg == null || "".equals(errorMsg)) { //$NON-NLS-1$
                                        if (Log.isDebugEnabled()) {
                                            errorMsg = caught.toString(); // for debugging purpose
                                        } else {
                                            errorMsg = BaseMessagesFactory.getMessages().unknown_error();
                                        }
                                    }

                                    // FIXME exception handling seems weird
                                    if (caught instanceof NoPermissionException) {
                                        MessageBox.alert(BaseMessagesFactory.getMessages().error_title(),
                                                MessagesFactory.getMessages().restore_no_permissions(), null);
                                    } else {
                                        MessageBox.alert(BaseMessagesFactory.getMessages().error_title(),
                                                MessagesFactory.getMessages().delete_no_permissions(), null);
                                    }
                                }

                                @Override
                                public void onSuccess(Boolean result) {

                                    MessageBox.confirm(BaseMessagesFactory.getMessages().confirm_title(),
                                            MessagesFactory.getMessages().delete_confirm(),
                                            new Listener<MessageBoxEvent>() {

                                                @Override
                                                public void handleEvent(MessageBoxEvent be) {
                                                    if (be.getButtonClicked().getItemId().equals(Dialog.YES)) {
                                                        String projection = model.getProjection();
                                                        if (projection != null && !projection.isEmpty()) {
                                                            String[] picArray = projection
                                                                    .split("/imageserver/");//$NON-NLS-1$
                                                            for (int i = 1; i < picArray.length; i++) {
                                                                String array = picArray[i];
                                                                if (!array.isEmpty()) {
                                                                    String uri = array.substring(0,
                                                                            array.indexOf("?"));//$NON-NLS-1$

                                                                    RequestBuilder builder = new RequestBuilder(
                                                                            RequestBuilder.POST,
                                                                            "/imageserver/secure/ImageDeleteServlet?uri=" //$NON-NLS-1$
                                                                                    + uri);
                                                                    builder.setCallback(new RequestCallback() {

                                                                        @Override
                                                                        public void onResponseReceived(
                                                                                Request request,
                                                                                Response response) {
                                                                            // TODO result
                                                                        }

                                                                        @Override
                                                                        public void onError(Request request,
                                                                                Throwable e) {
                                                                            MessageBox.alert(
                                                                                    BaseMessagesFactory
                                                                                            .getMessages()
                                                                                            .error_title(),
                                                                                    e.getMessage(), null);
                                                                        }
                                                                    });

                                                                    try {
                                                                        builder.send();
                                                                    } catch (RequestException e) {
                                                                        MessageBox.alert(BaseMessagesFactory
                                                                                .getMessages().error_title(),
                                                                                e.getMessage(), null);
                                                                    }
                                                                }
                                                            }
                                                        }
                                                        deleteItem(model);
                                                    }
                                                }

                                            });
                                }

                            });

                }

            });
            return image;
        }

    });
    ccList.add(colDelete);
    ColumnConfig colRestore = new ColumnConfig();
    colRestore.setId("restore");//$NON-NLS-1$
    colRestore.setWidth(50);
    colRestore.setHeader(MessagesFactory.getMessages().restore());
    colRestore.setRenderer(new GridCellRenderer<ItemsTrashItem>() {

        @Override
        public Object render(final ItemsTrashItem model, String property, ColumnData config, int rowIndex,
                int colIndex, ListStore<ItemsTrashItem> store, final Grid<ItemsTrashItem> modelGrid) {
            Image image = new Image();
            image.setResource(Icons.INSTANCE.restore());
            image.addStyleName("clickable"); //$NON-NLS-1$
            image.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    MessageBox.confirm(BaseMessagesFactory.getMessages().confirm_title(),
                            MessagesFactory.getMessages().restore_confirm(), new Listener<MessageBoxEvent>() {

                                @Override
                                public void handleEvent(MessageBoxEvent be) {
                                    if (be.getButtonClicked().getItemId().equals(Dialog.YES)) {
                                        service.checkConflict(model.getDataClusterName(),
                                                model.getConceptName(), model.getIds(),
                                                new SessionAwareAsyncCallback<Boolean>() {

                                                    @Override
                                                    public void onSuccess(Boolean result) {
                                                        if (result) {
                                                            MessageBox.confirm(
                                                                    BaseMessagesFactory.getMessages()
                                                                            .confirm_title(),
                                                                    MessagesFactory.getMessages()
                                                                            .overwrite_confirm(),
                                                                    new Listener<MessageBoxEvent>() {

                                                                        @Override
                                                                        public void handleEvent(
                                                                                MessageBoxEvent be1) {
                                                                            if (be1.getButtonClicked()
                                                                                    .getItemId()
                                                                                    .equals(Dialog.YES)) {
                                                                                recoverDroppedItem(model,
                                                                                        modelGrid);
                                                                            }
                                                                        }
                                                                    });
                                                        } else {
                                                            recoverDroppedItem(model, modelGrid);
                                                        }
                                                    }
                                                });
                                    }
                                }

                            });

                }

            });
            return image;
        }

    });
    ccList.add(colRestore);
    ColumnModel cm = new ColumnModel(ccList);

    RpcProxy<PagingLoadResult<ItemsTrashItem>> proxy = new RpcProxy<PagingLoadResult<ItemsTrashItem>>() {

        @Override
        protected void load(Object loadConfig, final AsyncCallback<PagingLoadResult<ItemsTrashItem>> callback) {
            BasePagingLoadConfigImpl baseConfig = BasePagingLoadConfigImpl
                    .copyPagingLoad((PagingLoadConfig) loadConfig);
            baseConfig.set("language", UrlUtil.getLanguage()); //$NON-NLS-1$
            service.getTrashItems(text.getValue() == null ? "*" : text.getValue(), baseConfig, //$NON-NLS-1$
                    new SessionAwareAsyncCallback<ItemBasePageLoadResult<ItemsTrashItem>>() {

                        @Override
                        public void onSuccess(ItemBasePageLoadResult<ItemsTrashItem> result) {
                            callback.onSuccess(new BasePagingLoadResult<ItemsTrashItem>(result.getData(),
                                    result.getOffset(), result.getTotalLength()));
                        }

                        @Override
                        protected void doOnFailure(Throwable caught) {
                            super.doOnFailure(caught);
                            callback.onSuccess(new BasePagingLoadResult<ItemsTrashItem>(
                                    new ArrayList<ItemsTrashItem>(), 0, 0));
                        }
                    });
        }

    };

    // loader
    final PagingLoader<PagingLoadResult<ItemsTrashItem>> loader = new BasePagingLoader<PagingLoadResult<ItemsTrashItem>>(
            proxy);

    final ListStore<ItemsTrashItem> store = new ListStore<ItemsTrashItem>(loader);
    grid = new ColumnAlignGrid<ItemsTrashItem>(store, cm);
    grid.getView().setAutoFill(true);
    grid.getView().setForceFit(true);
    // grid.setSize(350, 600);
    int usePageSize = PAGE_SIZE;
    if (StateManager.get().get("trashgrid") != null) { //$NON-NLS-1$
        usePageSize = Integer
                .valueOf(((Map<?, ?>) StateManager.get().get("trashgrid")).get("limit").toString()); //$NON-NLS-1$ //$NON-NLS-2$
    }
    pagetoolBar = new PagingToolBarEx(usePageSize);
    pagetoolBar.bind(loader);
    grid.setLoadMask(true);
    grid.setStateId("trashgrid");//$NON-NLS-1$
    grid.setStateful(true);
    grid.addListener(Events.Attach, new Listener<GridEvent<ItemsTrashItem>>() {

        @Override
        public void handleEvent(GridEvent<ItemsTrashItem> be) {
            PagingLoadConfig config = new BasePagingLoadConfig();
            config.setOffset(0);
            int pageSize = pagetoolBar.getPageSize();
            config.setLimit(pageSize);
            loader.load(config);
        }
    });
    grid.setSelectionModel(sm);
    grid.addPlugin(sm);
    this.setBottomComponent(pagetoolBar);
    add(grid);
}

From source file:org.talend.mdm.webapp.recyclebin.client.MainFramePanel.java

License:Open Source License

public void deleteSelected(List<ItemsTrashItem> selectedRecords) {
    if (selectedRecords == null || selectedRecords.size() == 0) {
        return;/*from  w ww.  j a v a2 s.  c  om*/
    }
    deleteMessages.clear();
    for (final ItemsTrashItem r : selectedRecords) {

        ++outstandingDeleteCallCount;

        service.isEntityPhysicalDeletable(r.getConceptName(), new SessionAwareAsyncCallback<Boolean>() {

            @Override
            protected void doOnFailure(Throwable caught) {
                deleteSelectedCheckFinished(r, false, ERROR_KEYWORD, caught.getMessage(), false);
            }

            @Override
            public void onSuccess(Boolean result) {
                String projection = r.getProjection();
                if (projection != null && !projection.isEmpty()) {
                    String[] picArray = projection.split("/imageserver/");//$NON-NLS-1$
                    for (int i = 1; i < picArray.length; i++) {
                        String array = picArray[i];
                        if (!array.isEmpty()) {
                            String uri = array.substring(0, array.indexOf("?"));//$NON-NLS-1$

                            RequestBuilder builder = new RequestBuilder(RequestBuilder.POST,
                                    "/imageserver/secure/ImageDeleteServlet?uri=" + uri);//$NON-NLS-1$
                            builder.setCallback(new RequestCallback() {

                                @Override
                                public void onResponseReceived(Request request, Response response) {
                                    // do nothing
                                }

                                @Override
                                public void onError(Request request, Throwable e) {
                                    MessageBox.alert(BaseMessagesFactory.getMessages().error_title(),
                                            e.getMessage(), null);
                                }
                            });

                            try {
                                builder.send();
                            } catch (RequestException e) {
                                if (Log.isErrorEnabled()) {
                                    Log.error(e.toString());
                                }
                            }
                        }
                    }
                }

                service.removeDroppedItem(r.getDataClusterName(), r.getDataModelName(), r.getConceptName(),
                        r.getIds(), UrlUtil.getLanguage(), new SessionAwareAsyncCallback<String>() {

                            @Override
                            public void onSuccess(String msg) {
                                deleteSelectedCheckFinished(r, true, SUCCESS_KEYWORD, msg, false);
                            }

                            @Override
                            protected void doOnFailure(Throwable caught) {
                                String errorMsg = caught.getLocalizedMessage();
                                if (caught instanceof DroppedItemBeforeDeletingException) {
                                    DroppedItemBeforeDeletingException e = (DroppedItemBeforeDeletingException) caught;
                                    deleteSelectedCheckFinished(r, false, e.getMessageType(), e.getMessage(),
                                            true);
                                } else {
                                    if (errorMsg == null) {
                                        if (Log.isDebugEnabled()) {
                                            errorMsg = caught.toString(); // for debugging
                                            // purpose
                                        } else {
                                            errorMsg = BaseMessagesFactory.getMessages().unknown_error();
                                        }
                                    }
                                    deleteSelectedCheckFinished(r, false, ERROR_KEYWORD, errorMsg, false);
                                }
                            }
                        });
            }
        });
    }
}

From source file:org.testmp.webconsole.client.ReportWindow.java

License:Open Source License

public void showReport(final ReportType type, Map<String, Object> params) {
    switch (type) {
    case TEST_METRICS:
        setTitle(ClientConfig.messages.testMetricsReport());
        break;/*from  ww w . ja  va  2 s.c o  m*/
    case ENVIRONMENT_STATUS:
        setTitle(ClientConfig.messages.environmentStatusReport());
        break;
    default:
        setTitle(type.getTypeName() + " Report");
    }

    windowLayout.removeMembers(windowLayout.getMembers());
    final Label loading = new Label(ClientConfig.messages.loading());
    loading.setAlign(Alignment.CENTER);
    loading.setIcon("loading.gif");
    loading.setIconSize(16);
    windowLayout.addMember(loading);

    StringBuilder dataBuilder = new StringBuilder();
    dataBuilder.append("reportType=").append(URL.encode(type.getTypeName()));
    for (Map.Entry<String, Object> param : params.entrySet()) {
        String key = param.getKey();
        String value = param.getValue().toString();
        dataBuilder.append('&').append(key).append('=').append(URL.encode(value));
    }

    final String baseUrl = GWT.getModuleBaseURL();
    String servicePath = ClientConfig.constants.reportService();
    requestUrl = baseUrl + servicePath.substring(servicePath.lastIndexOf('/') + 1);

    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, requestUrl);
    try {
        builder.sendRequest(dataBuilder.toString(), new RequestCallback() {

            @Override
            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == Response.SC_OK) {
                    windowLayout.removeMember(loading);
                    HTMLFlow reportPane = new HTMLFlow();
                    reportPane.setWidth("99%");
                    reportPane.setEvalScriptBlocks(true);
                    final String filename = response.getText();
                    reportPane.setContentsURL(baseUrl + "reports/" + filename);

                    HLayout wrapperLayout = new HLayout();
                    wrapperLayout.setOverflow(Overflow.AUTO);
                    wrapperLayout.addMember(reportPane);
                    windowLayout.addMember(wrapperLayout);

                    HLayout controls = new HLayout();
                    controls.setSize("99%", "20");
                    controls.setMargin(5);
                    controls.setMembersMargin(5);
                    controls.setAlign(Alignment.CENTER);
                    windowLayout.addMember(controls);

                    IButton sendButton = new IButton(ClientConfig.messages.send());
                    sendButton.addClickHandler(new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                            SendWindow window = new SendWindow(type, filename);
                            window.show();
                        }

                    });
                    controls.addMember(sendButton);

                    IButton cancelButton = new IButton(ClientConfig.messages.cancel());
                    cancelButton.addClickHandler(new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                            ReportWindow.this.destroy();
                        }

                    });
                    controls.addMember(cancelButton);
                } else {
                    SC.warn(response.getStatusCode() + " - " + response.getStatusText());
                }
            }

            @Override
            public void onError(Request request, Throwable exception) {
                SC.warn(exception.getMessage());
            }

        });
    } catch (Exception e) {
        SC.warn(e.getMessage());
    }
}