package org.cytoscape.d3.internal; import static org.cytoscape.work.ServiceProperties.ID; import java.util.Properties; import org.cytoscape.d3.internal.serializer.D3TreeModule; import org.cytoscape.d3.internal.serializer.D3jsModule; import org.cytoscape.d3.internal.writer.D3NetworkWriterFactory; import org.cytoscape.io.BasicCyFileFilter; import org.cytoscape.io.DataCategory; import org.cytoscape.io.util.StreamUtil; import org.cytoscape.service.util.AbstractCyActivator; import org.osgi.framework.BundleContext; import com.fasterxml.jackson.databind.ObjectMapper; /** * Activator for D3.js support module. * */ public class CyActivator extends AbstractCyActivator { public CyActivator() { super(); } public void start(BundleContext bc) { // Importing Services final StreamUtil streamUtil = getService(bc, StreamUtil.class); // ///////////////// Writers //////////////////////////// final ObjectMapper d3jsMapper = new ObjectMapper(); d3jsMapper.registerModule(new D3jsModule()); final ObjectMapper d3jsTreeMapper = new ObjectMapper(); d3jsTreeMapper.registerModule(new D3TreeModule()); final BasicCyFileFilter d3jsFilter = new BasicCyFileFilter(new String[] { "json" }, new String[] { "application/json" }, "JSON for D3.js Force Layout", DataCategory.NETWORK, streamUtil); final BasicCyFileFilter d3jsTreeFilter = new BasicCyFileFilter(new String[] { "json" }, new String[] { "application/json" }, "JSON for D3.js Tree", DataCategory.NETWORK, streamUtil); // For D3.js Force layout final D3NetworkWriterFactory d3jsWriterFactory = new D3NetworkWriterFactory(d3jsFilter, d3jsMapper); final Properties d3WriterFactoryProperties = new Properties(); d3WriterFactoryProperties.put(ID, "d3jsWriterFactory"); registerAllServices(bc, d3jsWriterFactory, d3WriterFactoryProperties); // For Tree Layout final D3NetworkWriterFactory d3jsTreeWriterFactory = new D3NetworkWriterFactory(d3jsTreeFilter, d3jsTreeMapper); final Properties d3TreeWriterFactoryProperties = new Properties(); d3TreeWriterFactoryProperties.put(ID, "d3jsTreeWriterFactory"); registerAllServices(bc, d3jsTreeWriterFactory, d3TreeWriterFactoryProperties); } }