/* * Copyright (c) 2010-2012 Research In Motion Limited. All rights reserved. * * This program and the accompanying materials are made available * under the terms of the Eclipse Public License, Version 1.0, * which accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html * */ package net.rim.ejde.internal.launching; import java.io.File; import net.rim.ejde.DebugFileLoader; import net.rim.ejde.IDebugConsoleWriter; import net.rim.ejde.internal.core.IConstants; import net.rim.ejde.internal.model.preferences.RootPreferences; import net.rim.ejde.internal.ui.dialogs.DownloadDebugFilesDialog; import net.rim.ejde.internal.ui.preferences.PreferenceConstants; import net.rim.ejde.internal.util.Messages; import net.rim.ide.RIA; import org.apache.log4j.Logger; import org.eclipse.swt.widgets.Display; public class EJDEDebugFilesClient implements RIA.DebugFilesClient { private String _serverUrl; private String _downloadTo; private IDebugConsoleWriter _console; private int _answer; private static Logger _logger = Logger.getLogger(EJDEDebugFilesClient.class); public EJDEDebugFilesClient( String serverUrl, String downloadTo ) { _serverUrl = serverUrl; _downloadTo = downloadTo; _console = null; } public EJDEDebugFilesClient( String serverUrl, String downloadTo, IDebugConsoleWriter console ) { _serverUrl = serverUrl; _downloadTo = downloadTo; _console = console; } public String downloadDebugFiles( String timestamp ) { String bundleFile = _downloadTo + File.separator + timestamp + IConstants.JAR_EXTENSION_WITH_DOT; if( !new File( bundleFile ).exists() ) { _answer = RootPreferences.getDownloadDebugFilesOption(); if( _answer == PreferenceConstants.DOWNLOAD_DEBUG_FILES_PROMPT ) { Display.getDefault().syncExec( new Runnable() { public void run() { _answer = DownloadDebugFilesDialog.openQuestion( Messages.DownloadDebugFilesDialogTitle, Messages.DownloadDebugFilesDialogText ); } } ); } if( _answer == PreferenceConstants.DOWNLOAD_DEBUG_FILES_YES ) { try { bundleFile = new DebugFileLoader(_serverUrl, _downloadTo, _console).downloadDebugFiles(timestamp); } catch (Exception e) { _logger.error("Error occured in downloading debug files", e); } } else { bundleFile = null; } } return bundleFile; } }