/******************************************************************************* * Copyright (c) 2004, 2008 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.examples.monitor.study; import java.io.File; import java.util.Calendar; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.mylyn.commons.core.DateUtil; import org.eclipse.mylyn.internal.monitor.usage.StudyParameters; import org.eclipse.mylyn.internal.monitor.usage.UiUsageMonitorPlugin; import org.eclipse.mylyn.internal.monitor.usage.wizards.UsageSubmissionWizard; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.plugin.AbstractUIPlugin; /** * A wizard for uploading the Mylyn statistics to a website * * @author Shawn Minto * @author Mik Kersten */ public class FeedbackWizard extends Wizard implements INewWizard { private final SubmitFeedbackPage feedbackPage; private final StudyParameters studyParameters; /** * Constructor for SampleNewWizard. */ public FeedbackWizard(UsageSubmissionWizard wizard) { super(); studyParameters = UiUsageMonitorPlugin.getDefault().getStudyParameters(); setNeedsProgressMonitor(true); super.setDefaultPageImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(UiUsageMonitorPlugin.ID_PLUGIN, "icons/wizban/banner-user.gif")); super.setWindowTitle(studyParameters.getStudyName() + " Feedback"); feedbackPage = new SubmitFeedbackPage(wizard, studyParameters); } public FeedbackWizard() { this(null); } @Override public boolean performFinish() { File f = feedbackPage.createFeedbackFile(); if (f == null) { return true; } // FIXME!!!!!!!!!!!!!!!!!! String uploadScript; // XXX: unimplemented uploadScript = "<unimplemented>"; // uploadScript = // MylynUsageMonitorPlugin.getDefault().getStudyParameters().getScriptsUrl() // + // MylynUsageMonitorPlugin.getDefault().getStudyParameters().getScriptsQuestionnaire(); int uid = feedbackPage.getUid(); UiUsageMonitorPlugin.getDefault() .getUploadManager() .uploadFile( uploadScript, "MYLYN" + uid, f, studyParameters.getUploadFileLabel() + "-" + studyParameters.getVersion() + "-" + "feedback" + "-" + uid + "-" + DateUtil.getIsoFormattedDateTime(Calendar.getInstance()) + ".txt", uid, new NullProgressMonitor()); if (f.exists()) { f.delete(); } return true; } /** * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, * org.eclipse.jface.viewers.IStructuredSelection) */ public void init(IWorkbench workbench, IStructuredSelection selection) { // don't need to do any initialization } @Override public void addPages() { addPage(feedbackPage); } }