/* ****************************************************************************** * Copyright (c) 2006-2016 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and * above are dual-licensed under the Eclipse Public License (EPL), * which is available at http://www.eclipse.org/legal/epl-v10.html * and the GNU Lesser General Public License (LGPL), * which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: * XMind Ltd. - initial API and implementation *******************************************************************************/ /** * */ package org.xmind.cathy.internal; import org.xmind.core.licensing.ILicenseAgent; import org.xmind.core.usagedata.IUsageDataSampler; import org.xmind.ui.internal.statushandlers.IErrorReporter; /** * @author Frank Shaka * */ public class ServiceManager { private boolean active; private IErrorReporter errorReporter; private IUsageDataSampler usageDataSampler; private ILicenseAgent licenseAgent; private CathyPlugin plugin; /** * */ public ServiceManager() { this.active = false; this.errorReporter = null; this.usageDataSampler = null; this.licenseAgent = null; this.plugin = CathyPlugin.getDefault(); } public void activate() { if (active) return; plugin.setUsageDataCollector(usageDataSampler); plugin.setErrorReporter(errorReporter); plugin.setLicenseAgent(licenseAgent); active = true; } public void deactivate() { if (!active) return; plugin.setUsageDataCollector(null); plugin.setErrorReporter(null); plugin.setLicenseAgent(null); active = false; } public void setErrorReporter(IErrorReporter reporter) { this.errorReporter = reporter; if (active) { plugin.setErrorReporter(reporter); } } public void unsetErrorReporter(IErrorReporter reporter) { if (reporter != this.errorReporter) return; this.errorReporter = null; if (active) { plugin.setErrorReporter(null); } } /** * @param sampler * the usageDataSampler to set */ public void setUsageDataSampler(IUsageDataSampler sampler) { this.usageDataSampler = sampler; if (active) { plugin.setUsageDataCollector(sampler); } } public void unsetUsageDataSampler(IUsageDataSampler sampler) { if (sampler == this.usageDataSampler) return; this.usageDataSampler = null; if (active) { plugin.setUsageDataCollector(null); } } public void setLicenseAgent(ILicenseAgent agent) { this.licenseAgent = agent; if (active) { plugin.setLicenseAgent(agent); } } public void unsetLicenseAgent(ILicenseAgent agent) { if (agent == this.licenseAgent) return; this.licenseAgent = null; if (active) { plugin.setLicenseAgent(null); } } }