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

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

Introduction

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

Prototype

public void setCallback(RequestCallback callback) 

Source Link

Document

Sets the response handler for this request.

Usage

From source file:org.spiffyui.client.rest.RESTility.java

License:Apache License

/**
 * <p>//from ww  w. j a  v a 2 s . c  om
 * Make an HTTP call and get the results as a JSON object.  This method handles
 * cases like login, error parsing, and configuration requests.
 *  </p>
 * 
 * @param options the options for the REST request
 */
public static void callREST(RESTOptions options) {
    if (hasPotentialXss(options.getDataString())) {
        options.getCallback().onError(new RESTException(RESTException.XSS_ERROR, "", STRINGS.noServerContact(),
                new HashMap<String, String>(), -1, options.getURL()));
        return;
    }

    RESTILITY.m_restCalls.put(options.getCallback(), new RESTCallStruct(options.getURL(),
            options.getDataString(), options.getMethod(), options.shouldReplay(), options.getEtag()));
    RequestBuilder builder = new RESTRequestBuilder(options.getMethod().getMethod(), options.getURL());
    /*
     Set our headers
     */
    builder.setHeader("Accept", "application/json");
    builder.setHeader("Accept-Charset", "UTF-8");
    if (options.getHeaders() != null) {
        for (String k : options.getHeaders().keySet()) {
            builder.setHeader(k, options.getHeaders().get(k));
        }
    }

    if (RESTILITY.m_bestLocale != null) {
        /*
         * The REST end points use the Accept-Language header to determine
         * the locale to use for the contents of the REST request.  Normally
         * the browser will fill this in with the browser locale and that
         * doesn't always match the preferred locale from the Identity Vault
         * so we need to set this value with the correct preferred locale.
         */
        builder.setHeader("Accept-Language", RESTILITY.m_bestLocale);
    }

    if (getUserToken() != null && getTokenServerUrl() != null) {
        builder.setHeader("Authorization", getFullAuthToken());
        builder.setHeader("TS-URL", getTokenServerUrl());
    }

    if (options.getEtag() != null) {
        builder.setHeader("If-Match", options.getEtag());
    }

    if (options.getDataString() != null) {
        /*
         Set our request data
         */

        builder.setRequestData(options.getDataString());

        //b/c jaxb/jersey chokes when there is no data when content-type is json
        builder.setHeader("Content-Type", options.getContentType());
    }

    builder.setCallback(RESTILITY.new RESTRequestCallback(options.getCallback()));

    try {
        /*
         If we are in the process of logging in then all other
         requests will just return with a 401 until the login
         is finished.  We want to delay those requests until
         the login is complete when we will replay all of them.
         */
        if (options.isLoginRequest() || !g_inLoginProcess) {
            builder.send();
        }
    } catch (RequestException e) {
        MessageUtil.showFatalError(e.getMessage());
    }

}

From source file:org.swellrt.api.CustomJsoSearchBuilderImpl.java

License:Apache License

@Override
public Request search(final Callback callback) {
    Preconditions.checkArgument(searchRequest != null,
            "call SearchBuilder.newSearch method to construct a new query");
    Preconditions.checkArgument(searchRequest.getQuery() != null, "new query should be set");

    String url = getUrl(searchRequest);
    LOG.trace().log("Performing a search query: [Query: ", searchRequest.getQuery(), ", Index: ",
            searchRequest.getIndex(), ", NumResults: ", searchRequest.getNumResults(), "]");

    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, host + url);

    requestBuilder.setCallback(new RequestCallback() {
        @Override/*from ww w.j  a va2 s.  co  m*/
        public void onResponseReceived(Request request, Response response) {
            LOG.trace().log("Search response received: ", response.getText());
            if (response.getStatusCode() != Response.SC_OK) {
                callback.onFailure("Got back status code " + response.getStatusCode());
            } else if (!response.getHeader("Content-Type").startsWith("application/json")) {
                callback.onFailure("Search service did not return json");
            } else {
                SearchResponseJsoImpl searchResponse;
                try {
                    searchResponse = JsonMessage.parse(response.getText());
                } catch (JsonException e) {
                    callback.onFailure(e.getMessage());
                    return;
                }
                List<DigestSnapshot> digestSnapshots = SearchBuilderUtils
                        .deserializeSearchResponse(searchResponse);
                callback.onSuccess(searchResponse.getTotalResults(), digestSnapshots);
            }
        }

        @Override
        public void onError(Request request, Throwable exception) {
            LOG.error().log("Search error: ", exception);
            callback.onFailure(exception.getMessage());
        }
    });

    try {
        requestBuilder.setIncludeCredentials(true);
        return requestBuilder.send();
    } catch (RequestException e) {
        callback.onFailure(e.getMessage());
        return null;
    }
}

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

License:Open Source License

private void sendTextToServer() {
    statusLabel.setText("");
    conceptList.clear();// w  w w  . ja v a  2 s . c om

    // 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.browserecords.client.widget.inputfield.PictureSelector.java

License:Open Source License

public PictureSelector(final Window parentWindow, final PictureField targetField) {

    RpcProxy<BasePagingLoadResult<org.talend.mdm.webapp.base.client.model.Image>> proxy = new RpcProxy<BasePagingLoadResult<org.talend.mdm.webapp.base.client.model.Image>>() {

        @Override/*from   w w w . jav a 2s .  c om*/
        protected void load(Object loadConfig,
                AsyncCallback<BasePagingLoadResult<org.talend.mdm.webapp.base.client.model.Image>> callback) {
            PagingLoadConfig pagingLoadConfig = (PagingLoadConfig) loadConfig;
            List<org.talend.mdm.webapp.base.client.model.Image> pagingList = new LinkedList<org.talend.mdm.webapp.base.client.model.Image>();
            int start = pagingLoadConfig.getOffset();
            int limit = result.size();
            if (pagingBar.getPageSize() > 0) {
                limit = (start + pagingBar.getPageSize() < limit ? start + pagingBar.getPageSize() : limit);
            }
            for (int i = pagingLoadConfig.getOffset(); i < limit; i++) {
                pagingList.add(result.get(i));
            }
            callback.onSuccess(new BasePagingLoadResult<org.talend.mdm.webapp.base.client.model.Image>(
                    pagingList, ((PagingLoadConfig) loadConfig).getOffset(), result.size()));
        }
    };

    final PagingLoader<PagingLoadResult<ItemBaseModel>> loader = new BasePagingLoader<PagingLoadResult<ItemBaseModel>>(
            proxy);
    final ListStore<ItemBaseModel> store = new ListStore<ItemBaseModel>(loader);

    LayoutContainer container = new LayoutContainer();
    BorderLayoutData northData = new BorderLayoutData(LayoutRegion.NORTH, 200, 100, 300);
    HorizontalPanel searchPanel = new HorizontalPanel();
    searchFiled.setWidth(240);
    searchFiled.addKeyListener(new KeyListener() {

        @Override
        public void componentKeyUp(ComponentEvent event) {
            if (event.getKeyCode() == KeyCodes.KEY_ENTER) {
                // When user press Enter key, perform the search.
                doSearch(loader);
            }
        }

    });

    Button searchButton = new Button(MessagesFactory.getMessages().search_btn());
    searchButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            doSearch(loader);
        }
    });
    searchPanel.add(searchFiled);
    searchPanel.add(searchButton);
    searchPanel.setSpacing(10);
    searchPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    container.add(searchPanel, northData);

    BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER, 200, 100, 300);

    ListView<ItemBaseModel> view = new ListView<ItemBaseModel>() {

        @Override
        protected ItemBaseModel prepareData(ItemBaseModel model) {
            org.talend.mdm.webapp.base.client.model.Image image = (org.talend.mdm.webapp.base.client.model.Image) model;
            model.set("shortName", Format.ellipse(image.getName(), 15)); //$NON-NLS-1$
            model.set("url", image.getUri() + "?width=80&height=60&randomNum=" + Math.random()); //$NON-NLS-1$ //$NON-NLS-2$ 
            return model;
        }
    };

    view.setId("img-chooser-view"); //$NON-NLS-1$
    view.setTemplate(getTemplate());
    view.setBorders(false);
    view.setStore(store);
    view.setItemSelector("div.thumb-wrap"); //$NON-NLS-1$ 
    view.setStateful(true);

    view.addListener(Events.OnDoubleClick, new Listener<ListViewEvent<ModelData>>() {

        public void handleEvent(ListViewEvent<ModelData> be) {
            org.talend.mdm.webapp.base.client.model.Image image = (org.talend.mdm.webapp.base.client.model.Image) be
                    .getModel();
            targetField.setValue(image.getUri().replace(ImageUtil.IMAGE_PATH, "")); //$NON-NLS-1$
            parentWindow.hide();
        }
    });

    setHeaderVisible(false);
    new ListViewDragSource(view);
    container.add(view, centerData);
    add(container);
    pagingBar.bind(loader);
    this.setBottomComponent(pagingBar);
    setBorders(false);
    setLayout(new FitLayout());
    setScrollMode(Scroll.AUTOY);

    RpcProxy<List<org.talend.mdm.webapp.base.client.model.Image>> imageProxy = new RpcProxy<List<org.talend.mdm.webapp.base.client.model.Image>>() {

        @Override
        protected void load(Object loadConfig,
                final AsyncCallback<List<org.talend.mdm.webapp.base.client.model.Image>> callback) {

            RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,
                    Location.getPath() + "/../" + ImageUtil.IMAGE_SERVER_PATH);
            requestBuilder.setCallback(new RequestCallback() {

                public void onResponseReceived(Request request, Response response) {
                    try {
                        List<org.talend.mdm.webapp.base.client.model.Image> images = ImageUtil
                                .getImages(response.getText());
                        result = all = images;
                        loader.load();
                    } catch (Exception e) {
                        MessageBox.alert(MessagesFactory.getMessages().error_title(), e.getMessage(), null);
                    }
                }

                public void onError(Request request, Throwable exception) {
                    MessageBox.alert(MessagesFactory.getMessages().error_title(), exception.getMessage(), null);
                }
            });
            try {
                requestBuilder.send();
            } catch (RequestException e) {
                MessageBox.alert("RequestException", e.getMessage(), null); //$NON-NLS-1$
            }
        }
    };

    imageloader = new BaseListLoader<ListLoadResult<BeanModel>>(imageProxy, new BeanModelReader());
}

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  ww  .  j  av  a 2 s  . c om*/
    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;//w w w .  j a va  2  s . c o  m
    }
    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.vectomatic.dom.svg.utils.HttpRequestXmlLoader.java

License:Open Source License

@Override
public void loadResource(final String resourceUrl, final AsyncXmlLoaderCallback callback) {
    String currentResourceUrl = resourceUrl
            + ((resourceUrl.indexOf("?") == -1) ? ("?ts=" + System.currentTimeMillis())
                    : ("&ts=" + +System.currentTimeMillis()));
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, currentResourceUrl);
    requestBuilder.setCallback(new RequestCallback() {
        public void onError(Request request, Throwable exception) {
            callback.onError(resourceUrl, exception);
        }//  ww  w  .j  a v a  2  s .  co  m

        private void onSuccess(Request request, Response response) {
            SVGParserImpl impl = GWT.create(SVGParserImpl.class);
            Element root = impl.parse(response.getText());
            callback.onSuccess(resourceUrl, root);
        }

        public void onResponseReceived(Request request, Response response) {
            if (response.getStatusCode() == Response.SC_OK) {
                onSuccess(request, response);
            } else {
                onError(request, null);
            }
        }
    });
    try {
        requestBuilder.send();
    } catch (RequestException e) {
        GWT.log("Cannot fetch " + resourceUrl, e);
    }
}

From source file:org.vectomatic.svg.edit.client.load.RSSReader.java

License:Open Source License

public void load() {

    final String url = "http://www.openclipart.org/rss/new.xml";
    String resourceUrl = FetchUtils.getFetchUrl(url, "text/xml");
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, resourceUrl);
    requestBuilder.setCallback(new RequestCallback() {
        public void onError(Request request, Throwable e) {
            GWT.log("Cannot fetch " + url, e);
            SvgrealApp.getApp().info(AppConstants.INSTANCE.openRssFeedMenuItem(),
                    AppMessages.INSTANCE.loadErrorMessage(url, e.getMessage()));
        }// ww w  .ja v a2s.  c  o  m

        private void onSuccess(Request request, Response response) {
            // Create a store of BeanModel of RSSEntry
            SVGParserImpl impl = GWT.create(SVGParserImpl.class);
            Document doc = impl.parseFromString(response.getText(), "text/xml").cast();
            OMElement root = OMNode.convert(doc.getDocumentElement());

            Iterator<OMAttr> iterator = DOMHelper.evaluateXPath(root, "//rss/channel/item/enclosure/@url",
                    null);
            while (iterator.hasNext()) {
                RSSEntry rssEntry = new RSSEntry();
                rssEntry.setSvgPath(iterator.next().getValue());
                store.add(beanFactory.createModel(rssEntry));
            }

            iterator = DOMHelper.evaluateXPath(root, "//rss/channel/item/media:thumbnail/@url",
                    new XPathPrefixResolver() {

                        @Override
                        public String resolvePrefix(String prefix) {
                            if ("media".equals(prefix)) {
                                return "http://search.yahoo.com/mrss/";
                            }
                            return null;
                        }
                    });
            int index = 0;
            while (iterator.hasNext()) {
                BeanModel beanModel = store.getAt(index++);
                RSSEntry rssEntry = (RSSEntry) beanModel.getBean();
                rssEntry.setPngPath(iterator.next().getValue());
                store.update(beanModel);
            }
        }

        public void onResponseReceived(Request request, Response response) {
            if (response.getStatusCode() == Response.SC_OK) {
                onSuccess(request, response);
            } else {
                onError(request, new IOException(
                        AppMessages.INSTANCE.httpErrorMessage(Integer.toString(response.getStatusCode()))));
            }
        }
    });
    try {
        requestBuilder.send();
    } catch (RequestException e) {
        GWT.log("Cannot fetch " + url, e);
        SvgrealApp.getApp().info(AppConstants.INSTANCE.openRssFeedMenuItem(),
                AppMessages.INSTANCE.loadErrorMessage(url, e.getMessage()));
    }
}

From source file:org.vectomatic.svg.edit.client.load.UrlLoadRequest.java

License:Open Source License

@Override
public void load() {
    final SvgrealApp app = SvgrealApp.getApp();
    final String resourceUrl = FetchUtils.getFetchUrl(url, "text/xml");
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, resourceUrl);
    requestBuilder.setCallback(new RequestCallback() {
        public void onError(Request request, Throwable e) {
            GWT.log("Cannot fetch " + url, e);
            app.info(AppConstants.INSTANCE.openUrlMenuItem(),
                    AppMessages.INSTANCE.loadErrorMessage(url, e.getMessage()));
        }//  ww  w . j  ava  2s .  c o m

        private void onSuccess(Request request, Response response) {
            try {
                app.addWindow(OMSVGParser.parse(response.getText()), UrlLoadRequest.this);
            } catch (ParserException e) {
                app.info(AppConstants.INSTANCE.openLocalMenuItem(),
                        AppMessages.INSTANCE.loadErrorMessage(resourceUrl, e.getMessage()));
            }
        }

        public void onResponseReceived(Request request, Response response) {
            if (response.getStatusCode() == Response.SC_OK) {
                onSuccess(request, response);
            } else {
                onError(request, new IOException(
                        AppMessages.INSTANCE.httpErrorMessage(Integer.toString(response.getStatusCode()))));
            }
        }
    });
    try {
        requestBuilder.send();
    } catch (RequestException e) {
        GWT.log("Cannot fetch " + url, e);
        app.info(AppConstants.INSTANCE.openUrlMenuItem(),
                AppMessages.INSTANCE.loadErrorMessage(url, e.getMessage()));
    }
}

From source file:org.vectomatic.svg.edit.client.RSSReader.java

License:Open Source License

public void load() {

    final String url = "http://www.openclipart.org/rss/new.xml";
    String resourceUrl = GWT.getHostPageBaseURL() + "fetch?url=" + url + "&type=text/xml";
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, resourceUrl);
    requestBuilder.setCallback(new RequestCallback() {
        public void onError(Request request, Throwable e) {
            GWT.log("Cannot fetch " + url, e);
            VectomaticApp2.APP.info(AppConstants.INSTANCE.openRssFeedMenuItem(),
                    AppMessages.INSTANCE.loadErrorMessage(url, e.getMessage()));
        }/*from   w  w w .  j av  a  2 s.co m*/

        private void onSuccess(Request request, Response response) {
            // Create a store of BeanModel of RSSEntry
            SVGParserImpl impl = GWT.create(SVGParserImpl.class);
            Document doc = impl.parseFromString(response.getText(), "text/xml").cast();
            OMElement root = OMNode.convert(doc.getDocumentElement());

            Iterator<OMAttr> iterator = DOMHelper.evaluateXPath(root, "//rss/channel/item/enclosure/@url",
                    null);
            while (iterator.hasNext()) {
                RSSEntry rssEntry = new RSSEntry();
                rssEntry.setSvgPath(iterator.next().getValue());
                store.add(beanFactory.createModel(rssEntry));
            }

            iterator = DOMHelper.evaluateXPath(root, "//rss/channel/item/media:thumbnail/@url",
                    new XPathPrefixResolver() {

                        @Override
                        public String resolvePrefix(String prefix) {
                            if ("media".equals(prefix)) {
                                return "http://search.yahoo.com/mrss/";
                            }
                            return null;
                        }
                    });
            int index = 0;
            while (iterator.hasNext()) {
                BeanModel beanModel = store.getAt(index++);
                RSSEntry rssEntry = (RSSEntry) beanModel.getBean();
                rssEntry.setPngPath(iterator.next().getValue());
                store.update(beanModel);
            }
        }

        public void onResponseReceived(Request request, Response response) {
            if (response.getStatusCode() == Response.SC_OK) {
                onSuccess(request, response);
            } else {
                onError(request, new IOException(
                        AppMessages.INSTANCE.httpErrorMessage(Integer.toString(response.getStatusCode()))));
            }
        }
    });
    try {
        requestBuilder.send();
    } catch (RequestException e) {
        GWT.log("Cannot fetch " + url, e);
        VectomaticApp2.APP.info(AppConstants.INSTANCE.openRssFeedMenuItem(),
                AppMessages.INSTANCE.loadErrorMessage(url, e.getMessage()));
    }
}