/*! * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved. */ package org.pentaho.platform.dataaccess.datasource.wizard.service.impl; import org.pentaho.gwt.widgets.client.utils.NameUtils; import org.pentaho.gwt.widgets.login.client.AuthenticatedGwtServiceUtil; import org.pentaho.gwt.widgets.login.client.IAuthenticatedGwtCommand; import org.pentaho.platform.dataaccess.datasource.ui.importing.GwtImportDialog; import org.pentaho.ui.xul.XulServiceCallback; import com.google.gwt.http.client.Request; import com.google.gwt.http.client.RequestBuilder; import com.google.gwt.http.client.RequestCallback; import com.google.gwt.http.client.RequestException; import com.google.gwt.http.client.Response; import com.google.gwt.user.client.rpc.AsyncCallback; @SuppressWarnings( "all" ) public class AnalysisDatasourceServiceGwtImpl { String datasourceUrl = getWebAppRoot() + "plugin/data-access/api/mondrian/putSchema?analysisFile={analysisFile}&databaseConnection={databaseConnection}"; //$NON-NLS-1$ @Deprecated public void importAnalysisDatasource( final String analysisFile, final String databaseConnection, final String parameters, final XulServiceCallback<String> xulCallback ) { AuthenticatedGwtServiceUtil.invokeCommand( new IAuthenticatedGwtCommand() { public void execute( final AsyncCallback callback ) { datasourceUrl = datasourceUrl.replaceAll( "{analysisFile}", NameUtils.URLEncode( analysisFile ) ); datasourceUrl = datasourceUrl.replaceAll( "{databaseConnection}", NameUtils.URLEncode( databaseConnection ) ); RequestBuilder requestBuilder = new RequestBuilder( RequestBuilder.PUT, datasourceUrl ); requestBuilder.setHeader( "accept", "text/*" ); requestBuilder.setHeader( "Content-Type", "text/plain" ); try { requestBuilder.sendRequest( parameters, new RequestCallback() { @Override public void onError( Request request, Throwable exception ) { xulCallback.error( exception.getLocalizedMessage(), exception ); } @Override public void onResponseReceived( Request request, Response response ) { if ( response.getStatusCode() == Response.SC_OK ) { callback.onSuccess( response.getText() ); } else { // if (response.getStatusCode() == Response.SC_INTERNAL_SERVER_ERROR) { xulCallback.error( response.getText(), new Exception( response.getText() ) ); } } } ); } catch ( RequestException e ) { xulCallback.error( e.getLocalizedMessage(), e ); } } }, new AsyncCallback<String>() { public void onFailure( Throwable arg0 ) { xulCallback.error( arg0.getLocalizedMessage(), arg0 ); } public void onSuccess( String arg0 ) { xulCallback.success( arg0 ); } } ); } public native String getWebAppRoot()/*-{ if ($wnd.CONTEXT_PATH) { return $wnd.CONTEXT_PATH; } return ""; }-*/; public void importAnalysisDatasource( final String uploadedFile, final String name, final String parameters, final GwtImportDialog importDialog, final XulServiceCallback<String> xulCallback ) { AuthenticatedGwtServiceUtil.invokeCommand( new IAuthenticatedGwtCommand() { public void execute( final AsyncCallback callback ) { try { // importDialog.getAnalysisImportDialogController().removeHiddenPanels(); // importDialog.getAnalysisImportDialogController().buildAndSetParameters(); // importDialog.getAnalysisImportDialogController().getFormPanel().submit(); callback.onSuccess( "SUCCESS" ); } catch ( Exception e ) { xulCallback.error( e.getLocalizedMessage(), e ); } } }, new AsyncCallback<String>() { public void onFailure( Throwable arg0 ) { xulCallback.error( arg0.getLocalizedMessage(), arg0 ); } public void onSuccess( String arg0 ) { xulCallback.success( arg0 ); } } ); } }