/******************************************************************************* * Copyright (C) 2011 Robert Munteanu <robert.munteanu@gmail.com> * * 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 *******************************************************************************/ package com.itsolut.mantis.ui.internal; import org.eclipse.mylyn.tasks.core.IRepositoryListener; import org.eclipse.mylyn.tasks.core.TaskRepositoryLocationFactory; import org.eclipse.mylyn.tasks.ui.TaskRepositoryLocationUiFactory; import org.eclipse.mylyn.tasks.ui.TasksUi; import com.google.inject.AbstractModule; import com.itsolut.mantis.core.IMantisClientManager; import com.itsolut.mantis.core.MantisCommentMapper; import com.itsolut.mantis.core.MantisCorePlugin; import com.itsolut.mantis.core.MantisRepositoryConnector; import com.itsolut.mantis.core.MantisTaskDataHandler; import com.itsolut.mantis.core.StatusFactory; import com.itsolut.mantis.core.Tracer; /** * This plugin configures the dependencies for beans belonging to the UI module. * * <p>It needs to preserve the unicity of the * * @author Robert Munteanu * */ class MantisUiPluginModule extends AbstractModule { @Override protected void configure() { // we need to retrieve the single instance from the Core module MantisRepositoryConnector connector = (MantisRepositoryConnector) TasksUi.getRepositoryManager().getRepositoryConnector(MantisCorePlugin.REPOSITORY_KIND); MantisTaskDataHandler taskDataHandler = (MantisTaskDataHandler) connector.getTaskDataHandler(); // tracer is post-configured by the MantisCore plugin so we need to retrieve the exact same instance bind(Tracer.class).toInstance(MantisCorePlugin.getDefault().getTracer()); bind(StatusFactory.class); bind(IMantisClientManager.class).toInstance(connector.getClientManager()); bind(MantisTaskDataHandler.class).toInstance(taskDataHandler); bind(TaskRepositoryLocationFactory.class).to(TaskRepositoryLocationUiFactory.class); bind(IRepositoryListener.class).toInstance(connector.getRepositoryListener()); bind(MantisHyperlinkFinder.class); bind(MantisCommentMapper.class).toInstance(taskDataHandler.getCommentMapper()); } }