| /******************************************************************************* |
| * Copyright (c) 2004, 2009 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.internal.monitor.usage.wizards; |
| |
| import java.lang.reflect.InvocationTargetException; |
| import java.net.URL; |
| |
| import org.eclipse.core.runtime.IProgressMonitor; |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Platform; |
| import org.eclipse.core.runtime.Status; |
| import org.eclipse.jface.dialogs.MessageDialog; |
| import org.eclipse.jface.operation.IRunnableWithProgress; |
| import org.eclipse.jface.resource.JFaceResources; |
| import org.eclipse.jface.wizard.IWizardPage; |
| import org.eclipse.jface.wizard.WizardPage; |
| import org.eclipse.mylyn.commons.core.StatusHandler; |
| import org.eclipse.mylyn.internal.monitor.usage.StudyParameters; |
| import org.eclipse.mylyn.internal.monitor.usage.UiUsageMonitorPlugin; |
| import org.eclipse.mylyn.internal.monitor.usage.UsageDataException; |
| import org.eclipse.osgi.util.NLS; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.browser.Browser; |
| import org.eclipse.swt.events.ModifyEvent; |
| import org.eclipse.swt.events.ModifyListener; |
| import org.eclipse.swt.events.SelectionAdapter; |
| import org.eclipse.swt.events.SelectionEvent; |
| import org.eclipse.swt.events.SelectionListener; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Combo; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Display; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Text; |
| |
| /** |
| * Page to get a user study id for the user. |
| * |
| * @author Mik Kersten |
| * @author Shawn Minto |
| */ |
| public class GetNewUserIdPage extends WizardPage { |
| |
| private Text firstName; |
| |
| private Text lastName; |
| |
| private Text emailAddress; |
| |
| private Button contactAgreement; |
| |
| // private Button anonymous; |
| private Button getNewUid; |
| |
| private Button getExistingUid; |
| |
| private String first; |
| |
| private String last; |
| |
| private String email; |
| |
| private boolean contactEmail = false; |
| |
| private boolean anon; |
| |
| private boolean hasValidated = false; |
| |
| private String jobFunction = Messages.GetNewUserIdPage_Select_Below; |
| |
| private String companySize = Messages.GetNewUserIdPage_Select_Below; |
| |
| private String companyFunction = Messages.GetNewUserIdPage_Select_Below; |
| |
| private final UsageSubmissionWizard wizard; |
| |
| private final boolean performUpload; |
| |
| private boolean extendedMonitor = false; |
| |
| private final StudyParameters studyParameters; |
| |
| public GetNewUserIdPage(UsageSubmissionWizard wizard, StudyParameters studyParameters, boolean performUpload) { |
| super(Messages.GetNewUserIdPage_Statistics_Wizard); |
| this.studyParameters = studyParameters; |
| this.performUpload = performUpload; |
| |
| setTitle(NLS.bind(Messages.GetNewUserIdPage_Get_X_Feedback_Id, studyParameters.getStudyName())); |
| setDescription(Messages.GetNewUserIdPage_In_Order_To_Submit_User_Id); |
| this.wizard = wizard; |
| if (studyParameters.getCustomizingPlugin() != null) { |
| extendedMonitor = true; |
| String customizedTitle = studyParameters.getTitle(); |
| if (!customizedTitle.equals("")) { //$NON-NLS-1$ |
| setTitle(NLS.bind(Messages.GetNewUserIdPage_X_Consent_Form_And_User_Id, customizedTitle)); |
| } |
| } |
| } |
| |
| /** |
| * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) |
| */ |
| public void createControl(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| container.setLayout(layout); |
| layout.numColumns = 1; |
| if (extendedMonitor) { |
| createBrowserSection(container); |
| // createAnonymousSection(container); |
| createInstructionSection(container); |
| createNamesSection(container); |
| createJobDetailSection(container); |
| if (studyParameters.usingContactField()) { |
| createContactSection(container); |
| } |
| createUserIdButtons(container); |
| } else { |
| createAnonymousParticipationButtons(container); |
| } |
| setControl(container); |
| } |
| |
| @SuppressWarnings("deprecation") |
| private void createBrowserSection(Composite parent) { |
| if (extendedMonitor) { |
| Label label = new Label(parent, SWT.NULL); |
| label.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT)); |
| label.setText(studyParameters.getCustomizedByMessage()); |
| |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| container.setLayout(layout); |
| layout.numColumns = 1; |
| Browser browser = new Browser(parent, SWT.NONE); |
| GridData gd = new GridData(GridData.FILL_HORIZONTAL); |
| gd.heightHint = 200; |
| gd.widthHint = 600; |
| browser.setLayoutData(gd); |
| |
| URL url = Platform.getBundle(studyParameters.getCustomizingPlugin()).getEntry( |
| studyParameters.getFormsConsent()); |
| try { |
| URL localURL = Platform.asLocalURL(url); |
| browser.setUrl(localURL.toString()); |
| } catch (Exception e) { |
| browser.setText(Messages.GetNewUserIdPage_Feedback_Description_Not_Located); |
| } |
| } else { |
| Label label = new Label(parent, SWT.NULL); |
| label.setText(""); //$NON-NLS-1$ |
| } |
| } |
| |
| // private void createAnonymousSection(Composite parent) { |
| // Composite container = new Composite(parent, SWT.NULL); |
| // GridLayout layout = new GridLayout(); |
| // container.setLayout(layout); |
| // layout.numColumns = 1; |
| // |
| // anonymous = new Button(container, SWT.CHECK); |
| // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| // anonymous.setLayoutData(gd); |
| // anonymous.setSelection(false); |
| // anonymous.setText("Anonymous (you must still provide your name and email |
| // for consent purposes)"); |
| // anonymous.addSelectionListener(new SelectionListener() { |
| // public void widgetSelected(SelectionEvent e) { |
| // if (e.widget instanceof Button) { |
| // Button b = (Button) e.widget; |
| // anon = b.getSelection(); |
| // updateEnablement(); |
| // // boolean edit = !anon; |
| // // firstName.setEditable(edit); |
| // // lastName.setEditable(edit); |
| // // emailAddress.setEditable(edit); |
| // GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| // } |
| // } |
| // public void widgetDefaultSelected(SelectionEvent e) { |
| // // don't care about default selection |
| // } |
| // }); |
| // } |
| |
| private void createNamesSection(Composite parent) { |
| Composite names = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(6, true); |
| layout.verticalSpacing = 9; |
| layout.horizontalSpacing = 4; |
| names.setLayout(layout); |
| |
| Label label = new Label(names, SWT.NULL); |
| label.setText(Messages.GetNewUserIdPage_First_Name); |
| |
| firstName = new Text(names, SWT.BORDER | SWT.SINGLE); |
| GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); |
| gd.horizontalSpan = 2; |
| firstName.setLayoutData(gd); |
| firstName.setEditable(true); |
| firstName.addModifyListener(new ModifyListener() { |
| public void modifyText(ModifyEvent e) { |
| first = firstName.getText(); |
| updateEnablement(); |
| GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| } |
| }); |
| |
| label = new Label(names, SWT.NULL); |
| label.setText(Messages.GetNewUserIdPage_Last_Name); |
| |
| lastName = new Text(names, SWT.BORDER | SWT.SINGLE); |
| gd = new GridData(SWT.FILL, SWT.FILL, true, true); |
| gd.horizontalSpan = 2; |
| lastName.setLayoutData(gd); |
| lastName.setEditable(true); |
| lastName.addModifyListener(new ModifyListener() { |
| public void modifyText(ModifyEvent e) { |
| last = lastName.getText(); |
| updateEnablement(); |
| GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| } |
| }); |
| |
| label = new Label(names, SWT.NONE); |
| label.setText(Messages.GetNewUserIdPage_Email_Address); |
| |
| emailAddress = new Text(names, SWT.BORDER | SWT.SINGLE); |
| gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_BOTH); |
| gd.horizontalSpan = 5; |
| emailAddress.setLayoutData(gd); |
| emailAddress.setEditable(true); |
| emailAddress.addModifyListener(new ModifyListener() { |
| public void modifyText(ModifyEvent e) { |
| email = emailAddress.getText(); |
| updateEnablement(); |
| GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| } |
| }); |
| } |
| |
| private void createJobDetailSection(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| container.setLayout(layout); |
| layout.numColumns = 2; |
| |
| Label l = new Label(container, SWT.NULL); |
| l.setText(Messages.GetNewUserIdPage_Job_Function); |
| final Combo jobFunctionCombo = new Combo(container, SWT.DROP_DOWN); |
| jobFunctionCombo.setText(jobFunction); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Application_Developer); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_QA); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Program_Director); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_CIO); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_VP_Development); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Application_Architect); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Project_Manager); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Student); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Faculty); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Business); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Analyst); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Database_Administrator); |
| jobFunctionCombo.add(Messages.GetNewUserIdPage_Other); |
| jobFunctionCombo.addSelectionListener(new SelectionAdapter() { |
| @Override |
| public void widgetSelected(SelectionEvent e) { |
| jobFunction = jobFunctionCombo.getText(); |
| updateEnablement(); |
| } |
| }); |
| |
| l = new Label(container, SWT.NULL); |
| l.setText(Messages.GetNewUserIdPage_Company_Size); |
| final Combo companySizecombo = new Combo(container, SWT.DROP_DOWN); |
| companySizecombo.setText(companySize); |
| companySizecombo.add(Messages.GetNewUserIdPage_Individual); |
| companySizecombo.add(Messages.GetNewUserIdPage_Gt_Fifty); |
| companySizecombo.add(Messages.GetNewUserIdPage_Fifty_Hundred); |
| companySizecombo.add(Messages.GetNewUserIdPage_Hundred_Five_Hundred); |
| companySizecombo.add(Messages.GetNewUserIdPage_Five_Hundred_Thousand); |
| companySizecombo.add(Messages.GetNewUserIdPage_Thousand_Twenty_Five_Hundred); |
| companySizecombo.add(Messages.GetNewUserIdPage_Gt_Twenty_Five_Hundred); |
| companySizecombo.addSelectionListener(new SelectionAdapter() { |
| @Override |
| public void widgetSelected(SelectionEvent e) { |
| companySize = companySizecombo.getText(); |
| updateEnablement(); |
| } |
| }); |
| |
| l = new Label(container, SWT.NULL); |
| l.setText(Messages.GetNewUserIdPage_Company_Business); |
| final Combo companyBuisnesscombo = new Combo(container, SWT.DROP_DOWN); |
| companyBuisnesscombo.setText(companyFunction); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Financial); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Energy); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Government); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Hardware); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Networking); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Pharmaceutical); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Automotive); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Software); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Communications); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Transportation); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Retail); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Utilities); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Other_Manufacturing); |
| companyBuisnesscombo.add(Messages.GetNewUserIdPage_Academic); |
| companyBuisnesscombo.addSelectionListener(new SelectionAdapter() { |
| @Override |
| public void widgetSelected(SelectionEvent e) { |
| companyFunction = companyBuisnesscombo.getText(); |
| updateEnablement(); |
| } |
| }); |
| } |
| |
| private void createInstructionSection(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 1; |
| container.setLayout(layout); |
| |
| Label l = new Label(container, SWT.NONE); |
| // l.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT)); |
| l.setText(Messages.GetNewUserIdPage_To_Create_User_Id_Fill_In); |
| |
| GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| l.setLayoutData(gd); |
| } |
| |
| private void createContactSection(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 1; |
| container.setLayout(layout); |
| |
| contactAgreement = new Button(container, SWT.CHECK); |
| contactAgreement.setText(Messages.GetNewUserIdPage_Willing_To_Receive_Email); |
| contactAgreement.addSelectionListener(new SelectionAdapter() { |
| @Override |
| public void widgetSelected(SelectionEvent e) { |
| contactEmail = contactAgreement.getSelection(); |
| } |
| }); |
| } |
| |
| private void createUserIdButtons(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 1; |
| container.setLayout(layout); |
| |
| Label l = new Label(container, SWT.NONE); |
| l.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT)); |
| l.setText(Messages.GetNewUserIdPage_I_Consent_Acknowledge); |
| GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| l.setLayoutData(gd); |
| |
| container = new Composite(parent, SWT.NULL); |
| layout = new GridLayout(); |
| layout.numColumns = 2; |
| container.setLayout(layout); |
| |
| getNewUid = new Button(container, SWT.PUSH); |
| gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| getNewUid.setLayoutData(gd); |
| getNewUid.setSelection(false); |
| getNewUid.setText(Messages.GetNewUserIdPage_I_Consent); |
| getNewUid.addSelectionListener(new SelectionListener() { |
| public void widgetSelected(SelectionEvent e) { |
| if (e.widget instanceof Button) { |
| if (hasAllFields(false)) { |
| final int[] uid = new int[1]; |
| try { |
| getWizard().getContainer().run(false, true, new IRunnableWithProgress() { |
| |
| public void run(IProgressMonitor monitor) throws InvocationTargetException, |
| InterruptedException { |
| try { |
| uid[0] = UiUsageMonitorPlugin.getDefault().getUploadManager().getNewUid( |
| studyParameters, first, last, email, anon, jobFunction, companySize, |
| companyFunction, contactEmail, monitor); |
| } catch (UsageDataException e) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e.getMessage(), e)); |
| uid[0] = -1; |
| } |
| } |
| }); |
| } catch (InvocationTargetException e1) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e1.getMessage(), e1)); |
| } catch (InterruptedException e1) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e1.getMessage(), e1)); |
| } |
| if (uid[0] != -1 && uid[0] != 0) { |
| UiUsageMonitorPlugin.getDefault().getPreferenceStore().setValue( |
| studyParameters.getUserIdPreferenceId(), uid[0]); |
| if (wizard.getUploadPage() != null) { |
| wizard.getUploadPage().updateUid(); |
| } |
| hasValidated = true; |
| MessageDialog.openInformation(Display.getDefault().getActiveShell(), NLS.bind( |
| Messages.GetNewUserIdPage_X_User_Study_Id, studyParameters.getStudyName()), |
| NLS.bind(Messages.GetNewUserIdPage_Your_X_User_Study_Id_Y, |
| studyParameters.getStudyName(), wizard.getUid())); |
| } else { |
| MessageDialog.openError(null, Messages.UsageSubmissionWizard_Error_Getting_User_Id, |
| Messages.UsageSubmissionWizard_Unable_To_Get_New_User_Id); |
| } |
| } else { |
| MessageDialog.openError(Display.getDefault().getActiveShell(), |
| Messages.GetNewUserIdPage_Incomplete_Form_Input, |
| Messages.GetNewUserIdPage_Please_Complete_All_Fields); |
| } |
| GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| } |
| } |
| |
| public void widgetDefaultSelected(SelectionEvent e) { |
| // don't care about default selected |
| } |
| }); |
| |
| getExistingUid = new Button(container, SWT.PUSH); |
| gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| getExistingUid.setLayoutData(gd); |
| getExistingUid.setSelection(false); |
| getExistingUid.setText(Messages.GetNewUserIdPage_Already_Consented); |
| getExistingUid.addSelectionListener(new SelectionListener() { |
| public void widgetSelected(SelectionEvent e) { |
| if (e.widget instanceof Button) { |
| if (hasAllFields(true)) { |
| final int[] uid = new int[1]; |
| try { |
| getWizard().getContainer().run(false, true, new IRunnableWithProgress() { |
| |
| public void run(IProgressMonitor monitor) throws InvocationTargetException, |
| InterruptedException { |
| try { |
| uid[0] = UiUsageMonitorPlugin.getDefault().getUploadManager().getExistingUid( |
| studyParameters, first, last, email, anon, monitor); |
| } catch (UsageDataException e) { |
| uid[0] = -1; |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e.getMessage(), e)); |
| } |
| } |
| }); |
| } catch (InvocationTargetException e1) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e1.getMessage(), e1)); |
| } catch (InterruptedException e1) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e1.getMessage(), e1)); |
| } |
| if (uid[0] != -1 && uid[0] != 0) { |
| |
| UiUsageMonitorPlugin.getDefault().getPreferenceStore().setValue( |
| studyParameters.getUserIdPreferenceId(), uid[0]); |
| if (wizard.getUploadPage() != null) { |
| wizard.getUploadPage().updateUid(); |
| } |
| hasValidated = true; |
| MessageDialog.openInformation(Display.getDefault().getActiveShell(), NLS.bind( |
| Messages.GetNewUserIdPage_X_User_Study_Id, studyParameters.getStudyName()), |
| NLS.bind(Messages.GetNewUserIdPage_Your_X_User_Study_Id_Y_Retrieve_By_Repeating, |
| studyParameters.getStudyName(), wizard.getUid())); |
| } else { |
| MessageDialog.openError(null, Messages.UsageSubmissionWizard_Error_Getting_User_Id, |
| Messages.UsageSubmissionWizard_Unable_To_Get_New_User_Id); |
| } |
| } else { |
| MessageDialog.openError(Display.getDefault().getActiveShell(), |
| Messages.GetNewUserIdPage_Incomplete_Form_Input, |
| Messages.GetNewUserIdPage_Please_Complete_All_Fields); |
| } |
| GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| } |
| } |
| |
| public void widgetDefaultSelected(SelectionEvent e) { |
| // don't care about default selected |
| } |
| }); |
| |
| updateEnablement(); |
| } |
| |
| private void createAnonymousParticipationButtons(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 1; |
| container.setLayout(layout); |
| |
| Label label = new Label(container, SWT.NONE); |
| label.setText(Messages.GetNewUserIdPage_Your_Data_Not_Traceable); |
| label = new Label(container, SWT.NONE); |
| label.setText(Messages.GetNewUserIdPage_Before_Switching_Retrieve_From_Preferences); |
| // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| // label.setLayoutData(gd); |
| |
| container = new Composite(parent, SWT.NULL); |
| layout = new GridLayout(); |
| layout.numColumns = 2; |
| container.setLayout(layout); |
| |
| getNewUid = new Button(container, SWT.PUSH); |
| GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); |
| getNewUid.setLayoutData(gd); |
| getNewUid.setSelection(false); |
| getNewUid.setText(Messages.GetNewUserIdPage_Create_Or_Retrieve_Id); |
| getNewUid.addSelectionListener(new SelectionListener() { |
| public void widgetSelected(SelectionEvent e) { |
| if (e.widget instanceof Button) { |
| final int[] uid = new int[1]; |
| try { |
| getWizard().getContainer().run(false, true, new IRunnableWithProgress() { |
| |
| public void run(IProgressMonitor monitor) throws InvocationTargetException, |
| InterruptedException { |
| try { |
| uid[0] = UiUsageMonitorPlugin.getDefault().getUploadManager().getNewUid( |
| studyParameters, monitor); |
| } catch (UsageDataException e) { |
| uid[0] = -1; |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, |
| e.getMessage(), e)); |
| } |
| } |
| }); |
| } catch (InvocationTargetException e1) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, e1.getMessage(), e1)); |
| } catch (InterruptedException e1) { |
| StatusHandler.log(new Status(IStatus.ERROR, UiUsageMonitorPlugin.ID_PLUGIN, e1.getMessage(), e1)); |
| } |
| if (uid[0] != -1 && uid[0] != 0) { |
| UiUsageMonitorPlugin.getDefault().getPreferenceStore().setValue( |
| studyParameters.getUserIdPreferenceId(), uid[0]); |
| if (wizard.getUploadPage() != null) { |
| wizard.getUploadPage().updateUid(); |
| } |
| hasValidated = true; |
| MessageDialog.openInformation(Display.getDefault().getActiveShell(), NLS.bind( |
| Messages.GetNewUserIdPage_X_User_Study_Id, studyParameters.getStudyName()), NLS.bind( |
| Messages.GetNewUserIdPage_Your_X_User_Study_Id_Y_Record, |
| studyParameters.getStudyName(), wizard.getUid())); |
| } else { |
| MessageDialog.openError(null, Messages.UsageSubmissionWizard_Error_Getting_User_Id, |
| Messages.UsageSubmissionWizard_Unable_To_Get_New_User_Id); |
| } |
| GetNewUserIdPage.this.setPageComplete(GetNewUserIdPage.this.isPageComplete()); |
| } |
| } |
| |
| public void widgetDefaultSelected(SelectionEvent e) { |
| // don't care about default selected |
| } |
| }); |
| updateEnablement(); |
| } |
| |
| private void updateEnablement() { |
| if (!extendedMonitor) { |
| return; |
| } |
| boolean nameFilled = (!firstName.getText().equals("") && !lastName.getText().equals("") && !emailAddress.getText() //$NON-NLS-1$ //$NON-NLS-2$ |
| .equals("")) //$NON-NLS-1$ |
| || anon; |
| // if(nameFilled){ |
| // getExistingUid.setEnabled(true); |
| boolean jobFilled = !jobFunction.equals(Messages.GetNewUserIdPage_Select_Below) |
| && !companyFunction.equals(Messages.GetNewUserIdPage_Select_Below) |
| && !companySize.equals(Messages.GetNewUserIdPage_Select_Below); |
| // if(jobFilled){ |
| // getNewUid.setEnabled(true); |
| // } else { |
| // getNewUid.setEnabled(false); |
| // } |
| if (nameFilled && jobFilled) { |
| getNewUid.setEnabled(true); |
| getExistingUid.setEnabled(true); |
| } else { |
| getExistingUid.setEnabled(false); |
| getNewUid.setEnabled(false); |
| } |
| } |
| |
| public boolean hasAllFields(boolean existing) { |
| if (!extendedMonitor) { |
| return true; |
| } |
| boolean nameFilled = !firstName.getText().equals("") && !lastName.getText().equals("") //$NON-NLS-1$//$NON-NLS-2$ |
| && !emailAddress.getText().equals(""); //$NON-NLS-1$ |
| if (!existing) { |
| boolean jobFilled = !jobFunction.equals(Messages.GetNewUserIdPage_Select_Below) |
| && !companyFunction.equals(Messages.GetNewUserIdPage_Select_Below) |
| && !companySize.equals(Messages.GetNewUserIdPage_Select_Below); |
| return (jobFilled && nameFilled); |
| } else { |
| return nameFilled || anon; |
| } |
| } |
| |
| @Override |
| public boolean isPageComplete() { |
| if (hasAllFields(true) && hasValidated) { |
| return true; |
| } else { |
| return false; |
| } |
| } |
| |
| @Override |
| public IWizardPage getNextPage() { |
| if (isPageComplete() && performUpload) { |
| wizard.addPage(wizard.getUploadPage()); |
| } |
| |
| return super.getNextPage(); |
| |
| } |
| |
| public boolean isAnonymous() { |
| return anon; |
| } |
| |
| public String getEmailAddress() { |
| return email; |
| } |
| |
| public String getFirstName() { |
| return first; |
| } |
| |
| public String getLastName() { |
| return last; |
| } |
| } |