/* * File : ProgressPanel.java * Created : 7 oct. 2003 13:01:42 * By : Olivier * * Azureus - a Java Bittorrent client * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License. * * 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 General Public License for more details ( see the LICENSE file ). * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package org.gudy.azureus2.ui.swt.ipchecker; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.gudy.azureus2.core3.internat.MessageText; import org.gudy.azureus2.core3.ipchecker.extipchecker.ExternalIPCheckerService; import org.gudy.azureus2.core3.ipchecker.extipchecker.ExternalIPCheckerServiceListener; import org.gudy.azureus2.core3.util.AERunnable; import org.gudy.azureus2.ui.swt.wizard.*; /** * @author Olivier * */ public class ProgressPanel extends AbstractWizardPanel implements ExternalIPCheckerServiceListener { Text tasks; Display display; public ProgressPanel(IpCheckerWizard wizard, IWizardPanel previousPanel) { super(wizard, previousPanel); } /* (non-Javadoc) * @see org.gudy.azureus2.ui.swt.maketorrent.IWizardPanel#show() */ public void show() { display = wizard.getDisplay(); wizard.setTitle(MessageText.getString("ipCheckerWizard.progresstitle")); wizard.setCurrentInfo(""); Composite rootPanel = wizard.getPanel(); GridLayout layout = new GridLayout(); layout.numColumns = 1; rootPanel.setLayout(layout); Composite panel = new Composite(rootPanel, SWT.NULL); GridData gridData = new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.FILL_HORIZONTAL); panel.setLayoutData(gridData); layout = new GridLayout(); layout.numColumns = 1; panel.setLayout(layout); tasks = new Text(panel, SWT.BORDER | SWT.MULTI | SWT.READ_ONLY); tasks.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); gridData = new GridData(GridData.FILL_BOTH); gridData.heightHint = 120; tasks.setLayoutData(gridData); } public void finish() { ((IpCheckerWizard)wizard).selectedService.addListener(this); ((IpCheckerWizard)wizard).selectedService.initiateCheck(10000); } public void checkComplete(ExternalIPCheckerService service, String ip) { reportProgress(service,MessageText.getString("ipCheckerWizard.checkComplete") + ip); IpSetterCallBack callBack = ((IpCheckerWizard)wizard).callBack; if(callBack != null) { callBack.setIp(ip); } wizard.switchToClose(); } public void checkFailed(ExternalIPCheckerService service, String reason) { reportProgress(service,MessageText.getString("ipCheckerWizard.checkFailed") + reason); wizard.switchToClose(); } public void reportProgress( final ExternalIPCheckerService service, final String message) { if(display == null || display.isDisposed()) return; display.asyncExec(new AERunnable() { public void runSupport() { if (tasks != null && !tasks.isDisposed()) { tasks.append(service.getName() + " : " + message + Text.DELIMITER); } } }); } }