use of org.cytoscape.filter.internal.work.TransformerManagerImpl in project cytoscape-impl by cytoscape.
the class UiScaffold method start.
void start() {
MockitoAnnotations.initMocks(this);
Random random = new Random(0);
NetworkTestSupport networkTestSupport = new NetworkTestSupport();
CyNetwork network = networkTestSupport.getNetwork();
CyTable nodeTable = network.getDefaultNodeTable();
nodeTable.createColumn("Score", Double.class, false);
nodeTable.createColumn("IsSpecial", Boolean.class, false);
for (int i = 0; i < TOTAL_NODES; i++) {
CyNode node = network.addNode();
network.getRow(node).set("Score", random.nextGaussian());
network.getRow(node).set("IsSpecial", i % 2 == 0);
}
List<CyNode> nodes = network.getNodeList();
for (int i = 0; i < TOTAL_EDGES; i++) {
CyNode source = nodes.get(random.nextInt(nodes.size()));
CyNode target = nodes.get(random.nextInt(nodes.size()));
network.addEdge(source, target, false);
}
when(applicationManager.getCurrentNetworkView()).thenReturn(networkView);
when(applicationManager.getCurrentNetwork()).thenReturn(network);
when(networkView.getModel()).thenReturn(network);
when(serviceRegistrar.getService(CyApplicationManager.class)).thenReturn(applicationManager);
when(serviceRegistrar.getService(TaskManager.class)).thenReturn(taskManager);
when(serviceRegistrar.getService(IconManager.class)).thenReturn(iconManager);
JFrame frame = new JFrame();
frame.setTitle("Select");
Map<String, String> properties = Collections.emptyMap();
TransformerManagerImpl transformerManager = new TransformerManagerImpl();
transformerManager.registerFilterFactory(new ColumnFilterFactory(), properties);
transformerManager.registerFilterFactory(new DegreeFilterFactory(), properties);
transformerManager.registerFilterFactory(new TopologyFilterFactory(), properties);
transformerManager.registerElementTransformerFactory(new InteractionTransformerFactory(), properties);
ModelMonitor modelMonitor = new ModelMonitor();
modelMonitor.handleEvent(new SetCurrentNetworkEvent(applicationManager, network));
ValidationManager validationManager = new ValidationManager();
FilterPanelStyle style = new StandardStyle();
TransformerViewManager transformerViewManager = new TransformerViewManager(transformerManager);
// transformerViewManager.registerTransformerViewFactory(new ColumnFilterViewFactory(style, modelMonitor), properties);
transformerViewManager.registerTransformerViewFactory(new DegreeFilterViewFactory(style, modelMonitor), properties);
transformerViewManager.registerTransformerViewFactory(new TopologyFilterViewFactory(style), properties);
transformerViewManager.registerTransformerViewFactory(new InteractionTransformerViewFactory(style), properties);
LazyWorkQueue queue = new LazyWorkQueue();
FilterWorker filterWorker = new FilterWorker(queue, serviceRegistrar);
FilterIO filterIo = null;
FilterPanelController filterPanelController = new FilterPanelController(transformerManager, transformerViewManager, validationManager, filterWorker, modelMonitor, filterIo, style, serviceRegistrar);
FilterPanel filterPanel = new FilterPanel(filterPanelController, filterWorker, serviceRegistrar);
TransformerWorker transformerWorker = new TransformerWorker(queue, transformerManager, serviceRegistrar);
TransformerPanelController transformerPanelController = new TransformerPanelController(transformerManager, transformerViewManager, validationManager, filterPanelController, transformerWorker, filterIo, style, serviceRegistrar);
TransformerPanel transformerPanel = new TransformerPanel(transformerPanelController, transformerWorker, serviceRegistrar);
SelectPanel selectPanel = new SelectPanel(filterPanel, transformerPanel);
JRootPane root = frame.getRootPane();
root.setLayout(new GridBagLayout());
root.add(selectPanel, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
frame.setSize(450, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
use of org.cytoscape.filter.internal.work.TransformerManagerImpl in project cytoscape-impl by cytoscape.
the class FilterIOTest method testLoadOldTopologyFilter.
/**
* The topology filter was made a composite filter in 3.3. Older versions of cytoscape
* will export a topology filter without the "transformers" field that is part of
* composite filters. The filter json parser was enhanced to support this.
*/
@SuppressWarnings("rawtypes")
@Test
public void testLoadOldTopologyFilter() throws IOException {
TransformerManagerImpl transformerManager = new TransformerManagerImpl();
Map<String, String> properties = Collections.emptyMap();
transformerManager.registerFilterFactory(new CompositeFilterFactory<CyNetwork, CyIdentifiable>(CyNetwork.class, CyIdentifiable.class), properties);
transformerManager.registerFilterFactory(new TopologyFilterFactory(), properties);
transformerManager.registerFilterFactory(new ColumnFilterFactory(), properties);
String path = "./src/test/resources/testData/filter/topology-filter-3.2.json";
byte[] encoded = Files.readAllBytes(Paths.get(path));
// String contents = new String(encoded);
// System.out.println(contents);
CyTransformerReaderImpl reader = new CyTransformerReaderImpl();
reader.registerTransformerManager(transformerManager, null);
ByteArrayInputStream inputStream = new ByteArrayInputStream(encoded);
NamedTransformer<?, ?>[] transformers = reader.read(inputStream);
Assert.assertNotNull(transformers);
Assert.assertEquals(1, transformers.length);
NamedTransformer<?, ?> namedTransformer = transformers[0];
Assert.assertNotNull(namedTransformer);
Assert.assertEquals("Default filter", namedTransformer.getName());
List children = namedTransformer.getTransformers();
Assert.assertEquals(1, children.size());
Transformer child = (Transformer) children.get(0);
Assert.assertNotNull(child);
Assert.assertTrue(child instanceof CompositeFilter);
CompositeFilter composite = (CompositeFilter) child;
Assert.assertEquals(2, composite.getLength());
Assert.assertTrue(composite.get(0) instanceof TopologyFilter);
Assert.assertTrue(composite.get(1) instanceof ColumnFilter);
TopologyFilter topology = (TopologyFilter) composite.get(0);
Assert.assertEquals(0, topology.getLength());
Assert.assertEquals(Integer.valueOf(4), topology.getDistance());
Assert.assertEquals(Integer.valueOf(5), topology.getThreshold());
ColumnFilter column = (ColumnFilter) composite.get(1);
Assert.assertEquals("name", column.getColumnName());
}
use of org.cytoscape.filter.internal.work.TransformerManagerImpl in project cytoscape-impl by cytoscape.
the class FilterIOTest method testNestedFilterRoundTrip.
@SuppressWarnings("rawtypes")
@Test
public void testNestedFilterRoundTrip() throws Exception {
DegreeFilter degreeFilter = new DegreeFilter();
degreeFilter.setCriterion(new Double[] { 0.2, 5.5 });
degreeFilter.setEdgeType(CyEdge.Type.ANY);
CompositeFilter<CyNetwork, CyIdentifiable> composite = new CompositeFilterImpl<CyNetwork, CyIdentifiable>(CyNetwork.class, CyIdentifiable.class);
composite.setType(Type.ANY);
composite.append(degreeFilter);
CyTransformerWriter writer = new CyTransformerWriterImpl();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
writer.write(stream, FilterIO.createNamedTransformer("filter1", composite));
String serialized = stream.toString("utf-8");
TransformerManagerImpl transformerManager = new TransformerManagerImpl();
Map<String, String> properties = Collections.emptyMap();
transformerManager.registerFilterFactory(new DegreeFilterFactory(), properties);
transformerManager.registerFilterFactory(new CompositeFilterFactory<CyNetwork, CyIdentifiable>(CyNetwork.class, CyIdentifiable.class), properties);
CyTransformerReaderImpl reader = new CyTransformerReaderImpl();
reader.registerTransformerManager(transformerManager, null);
ByteArrayInputStream inputStream = new ByteArrayInputStream(stream.toByteArray());
NamedTransformer<?, ?>[] transformers = reader.read(inputStream);
Assert.assertNotNull(transformers);
Assert.assertEquals(1, transformers.length);
NamedTransformer<?, ?> namedTransformer = transformers[0];
Assert.assertNotNull(namedTransformer);
Assert.assertEquals("filter1", namedTransformer.getName());
List children = namedTransformer.getTransformers();
Assert.assertEquals(1, children.size());
Transformer child = (Transformer) children.get(0);
Assert.assertNotNull(child);
Assert.assertTrue(child instanceof CompositeFilter);
CompositeFilter composite2 = (CompositeFilter) child;
Assert.assertEquals(composite.getType(), composite2.getType());
Assert.assertEquals(composite.getLength(), composite2.getLength());
Filter filter = composite2.get(0);
Assert.assertTrue(filter instanceof DegreeFilter);
DegreeFilter degreeFilter2 = (DegreeFilter) filter;
Assert.assertArrayEquals((Number[]) degreeFilter.getCriterion(), (Number[]) degreeFilter2.getCriterion());
Assert.assertEquals(degreeFilter.getEdgeType(), degreeFilter2.getEdgeType());
}
Aggregations