blob: fd8a75063027f59e6b0e35100278e04e32859c03 [file] [log] [blame]
/*******************************************************************************
* 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
* Leah Findlater - improvements
*******************************************************************************/
package org.eclipse.mylyn.internal.monitor.usage;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import org.eclipse.mylyn.monitor.usage.AbstractStudyBackgroundPage;
import org.eclipse.mylyn.monitor.usage.AbstractStudyQuestionnairePage;
import org.eclipse.osgi.util.NLS;
/**
* @author Mik Kersten
* @author Leah Findlater
*/
public class StudyParameters {
private static final String PREF_USER_ID_PREFIX = "org.eclipse.mylyn.user.id"; //$NON-NLS-1$
private String title;
private String description;
private AbstractStudyQuestionnairePage questionnairePage = null;
private AbstractStudyBackgroundPage backgroundPage = null;
private long transmitPromptPeriod = UiUsageMonitorPlugin.DEFAULT_DELAY_BETWEEN_TRANSMITS;
private boolean promptForSubmission = false;
private String acceptedUrlList;
private String useContactField;
private String formsConsent;
private String version;
private String uploadServletUrl;
private String idServletUrl;
private String customizingPlugin;
private boolean forceObfuscation = false;
private String usagePageUrl;
private String studyName;
private String moreInformationUrl;
private final Collection<String> filteredIds = new HashSet<String>();
public String getUploadServletUrl() {
return uploadServletUrl;
}
public void setUploadServletUrl(String servletServerUrl) {
if (servletServerUrl != null) {
this.uploadServletUrl = servletServerUrl;
}
}
public String getUserIdServletUrl() {
return idServletUrl;
}
public void setUserIdServletUrl(String servletUserId) {
if (servletUserId != null) {
this.idServletUrl = servletUserId;
}
}
public String getFormsConsent() {
return formsConsent;
}
public void setFormsConsent(String formsConsent) {
if (formsConsent != null) {
this.formsConsent = formsConsent;
}
}
public long getTransmitPromptPeriod() {
return transmitPromptPeriod;
}
public void setTransmitPromptPeriod(long transmitPromptPeriod) {
this.transmitPromptPeriod = transmitPromptPeriod;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
if (description != null) {
this.description = description;
}
}
public AbstractStudyQuestionnairePage getQuestionnairePage() {
return questionnairePage;
}
public void setQuestionnairePage(AbstractStudyQuestionnairePage questionnairePage) {
if (questionnairePage != null) {
this.questionnairePage = questionnairePage;
}
}
public AbstractStudyBackgroundPage getBackgroundPage() {
return backgroundPage;
}
public void setBackgroundPage(AbstractStudyBackgroundPage backgroundPage) {
if (backgroundPage != null) {
this.backgroundPage = backgroundPage;
}
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
if (title != null) {
this.title = title;
}
}
public String getAcceptedUrlList() {
return this.acceptedUrlList;
}
public void setAcceptedUrlList(String acceptedUrlList) {
if (acceptedUrlList != null) {
this.acceptedUrlList = acceptedUrlList;
}
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
if (version != null) {
this.version = version;
}
}
public String getUseContactField() {
return useContactField;
}
public void setUseContactField(String useContactField) {
if (useContactField != null) {
this.useContactField = useContactField;
}
}
public void setCustomizingPlugin(String name) {
this.customizingPlugin = name;
}
public String getCustomizingPlugin() {
return customizingPlugin;
}
public boolean isBackgroundEnabled() {
return backgroundPage != null;
}
public boolean isQuestionnaireEnabled() {
return questionnairePage != null;
}
public String getCustomizedByMessage() {
return NLS.bind(Messages.StudyParameters_Previously_Downloaded_X_Monitor, getStudyName(),
getCustomizingPlugin());
}
public boolean usingContactField() {
if (getUseContactField().equals("true")) { //$NON-NLS-1$
return true;
} else {
return false;
}
}
public boolean isComplete() {
return title != null && description != null && uploadServletUrl != null && idServletUrl != null;
}
public boolean isEmpty() {
return title == null && description == null && uploadServletUrl == null && idServletUrl == null;
}
public boolean forceObfuscation() {
return forceObfuscation;
}
public void setForceObfuscation(boolean forceObfuscation) {
this.forceObfuscation = forceObfuscation;
}
public String getUploadFileLabel() {
// TODO make this extensible
return "USAGE";//$NON-NLS-1$
}
public void setUsagePageUrl(String usagePageUrl) {
this.usagePageUrl = usagePageUrl;
}
public String getUsagePageUrl() {
return usagePageUrl;
}
public String getStudyName() {
return studyName;
}
public void setStudyName(String studyName) {
this.studyName = studyName;
}
public Collection<String> getFilteredIds() {
return Collections.unmodifiableCollection(filteredIds);
}
public void addFilteredIdPattern(String id) {
if (id != null && id.trim().length() > 0) {
filteredIds.add(id.trim());
}
}
public String getFilteredIdSubmissionText() {
Collection<String> filteredIds = getFilteredIds();
if (filteredIds.size() != 0) {
String filteredIdsString = ""; //$NON-NLS-1$
for (String id : filteredIds) {
filteredIdsString += id + "* "; //$NON-NLS-1$
}
return NLS.bind(Messages.StudyParameters_Only_Events_From_X_Submitted_To_Y, filteredIdsString,
getStudyName());
} else {
return NLS.bind(Messages.StudyParameters_All_Events_Submitted_To_Y, getStudyName());
}
}
public String getUserIdPreferenceId() {
String preferenceId = PREF_USER_ID_PREFIX;
if (getCustomizingPlugin() != null) {
preferenceId += "." + getCustomizingPlugin(); //$NON-NLS-1$
}
return preferenceId;
}
public void setPromptForSubmission(boolean promptForSubmission) {
this.promptForSubmission = promptForSubmission;
}
public boolean shouldPromptForSubmission() {
return promptForSubmission;
}
public void setMoreInformationUrl(String moreInformationUrl) {
if (moreInformationUrl != null) {
this.moreInformationUrl = moreInformationUrl;
}
}
public String getMoreInformationUrl() {
return moreInformationUrl;
}
}